packages feed

KiCS 0.8.9 → 0.9.0

raw patch · 83 files changed

+508/−71 lines, 83 filessetup-changed

Files

KiCS.cabal view
@@ -1,5 +1,5 @@ Name:          KiCS-Version:       0.8.9+Version:       0.9.0 Cabal-Version: >= 1.6 Author:        Bernd Braßel Maintainer:    Bernd Braßel@@ -133,6 +133,7 @@     Paths_KiCS     Curry.RunTimeSystem.Store     Curry.RunTimeSystem.BaseCurry+   
Setup.hs view
@@ -46,7 +46,6 @@ 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 @@ -62,8 +61,7 @@    -- 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]+  call (return kics) ["-nomake","-o",outfile,infile]   
dist/build/Curry/Module/AbstractCurry.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/AbstractCurryPrinter.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/AnsiCodes.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Array.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Assertion.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/CSV.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Char.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/CompactFlatCurry.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/CurryStringClassifier.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/CurrySyntax.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Dequeue.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Directory.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Distribution.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/EasyCheck.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FileGoodies.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FiniteMap.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurry.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurryGoodies.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurryRead.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurryShow.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurryTools.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlatCurryXML.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/FlexRigid.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Float.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Global.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/GraphInductive.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/IO.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/IOExts.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Integer.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Interactive.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/List.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Maybe.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Meta.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Parser.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Prelude.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Pretty.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/PrettyFlat.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/PropertyFile.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Random.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/RandomExternal.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Read.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/ReadShowTerm.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/RedBlackTree.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/SetRBT.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Socket.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Sort.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/StyledText.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/System.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/TableRBT.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Time.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Traversal.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/Unsafe.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
dist/build/Curry/Module/XML.hs view
@@ -1,4 +1,4 @@-{-# OPTIONS -cpp  #-}+{-# OPTIONS -cpp #-}  {-# LANGUAGE RankNTypes, ScopedTypeVariables, MultiParamTypeClasses, FlexibleInstances, TypeSynonymInstances #-} 
src/Curry/Compiler/Config.hs view
@@ -108,7 +108,7 @@                      pm :: PresentationMode,                      extData, extFuncs :: [String],                      extInsts :: [(String,[ProvidedInstance])],-                     toInclude :: String} deriving Show+                     toInclude :: ([String],String)} deriving Show  data ConsUse = DataDef | InstanceDef | FunctionDef deriving (Eq,Show) @@ -159,7 +159,7 @@       extData=[],       extInsts=[],       extFuncs=[],-      toInclude=""}+      toInclude=([],"")}  kicsrc home = unpath [home,".kicsrc"] @@ -380,6 +380,7 @@ data Provided = ForType String (Maybe [ProvidedInstance])               | ForFunction String                | SomeFunctions+              | Pragma String               deriving (Eq,Read,Show)  -- external specifications have to look like this:@@ -410,7 +411,7 @@         put 5 opts "reading external specification"         let [(specs,stringToInclude)] = reads spec             newOpts = foldr insertP -                            opts{toInclude=stringToInclude} +                            opts{toInclude=([],stringToInclude)}                              specs         safeIO (seq newOpts (return ()))         put 5 opts "external specification read"@@ -420,6 +421,8 @@     insertP (ForFunction f)       opts = opts{extFuncs = f      : extFuncs  opts}     insertP (ForType t Nothing)   opts = opts{extData  = t      : extData   opts}     insertP (ForType t (Just is)) opts = opts{extInsts = (t,is) : extInsts  opts}+    insertP (Pragma p)            opts = let (ps,inc) = toInclude opts+                                          in opts{toInclude=(p:ps,inc)}      getExternalSpecModTime :: Options -> String -> Safe IO ClockTime getExternalSpecModTime opts p = do
src/Curry/Compiler/CurryToHaskell.hs view
@@ -167,7 +167,9 @@ writeProgram opts (fn,unqualified,prog) = do   let filename = destination (fn/="Main.hs") (target opts) fn   put 3 opts ("writing "++ filename)-  let printOpts = defaultPrintOptions{unqual=unqualified,include=toInclude opts}+  let printOpts = defaultPrintOptions{unqual=unqualified,+                                      include=snd (toInclude opts),+                                      pragma=fst (toInclude opts)}   safeIO (writeKicsFile filename (showProgOpt printOpts prog))   put 3 opts (filename ++ " written") 
src/Curry/Compiler/ShowFunctionalProg.hs view
@@ -39,11 +39,12 @@ -------------------------------------------------------------------------------  data PrintOptions = PrintOpt { unqual :: Bool,-                          sep :: String,-                          include :: String}+                               sep :: String,+                               include :: String,+                               pragma  :: [String] }  defaultPrintOptions :: PrintOptions-defaultPrintOptions = PrintOpt False "" ""+defaultPrintOptions = PrintOpt False "" "" []  --- Shows an AbstractCurry program in standard Curry syntax. showProg :: Prog -> String@@ -51,12 +52,12 @@  showProgOpt :: PrintOptions -> Prog -> String showProgOpt opts p@(Prog m imports exports typedecls insdecls funcdecls opdecls)-   = "{-# OPTIONS -cpp  #-}\n\n"-     ++ "{-# LANGUAGE RankNTypes,\-                    \ ScopedTypeVariables,\-                    \ MultiParamTypeClasses,\-                    \ FlexibleInstances,\-                    \ TypeSynonymInstances #-}\n\n"+   = showPragma (["OPTIONS -cpp"+                      ,"LANGUAGE RankNTypes,\+                               \ ScopedTypeVariables,\+                               \ MultiParamTypeClasses,\+                               \ FlexibleInstances,\+                               \ TypeSynonymInstances"] ++ pragma opts)      ++ "module "++m++showExports opts m exports ++" where\n\n"      ++ showImports imports      ++ "\n\n-- begin included\n\n" @@ -68,6 +69,13 @@      ++ separate "\n\n" (map (showFuncDeclOpt opts) funcdecls)      ++ "\n" ++-----------------------------------------+-- pragma declaration+-----------------------------------------++showPragma :: [String] -> String+showPragma = concatMap (\s -> "{-# " ++ s ++ " #-}\n\n")  ----------------------------------------- -- export declaration
+ src/lib/Curry/Module/.curry/CEventOracle.acy view
@@ -0,0 +1,18 @@+CurryProg "CEventOracle"+ ["Prelude","IOExts","System","Prelude"]+ [CType ("CEventOracle","Ref") Public [] []]+ [CFunc ("CEventOracle","$!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$!"),+  CFunc ("CEventOracle","$!!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$!!"),+  CFunc ("CEventOracle","$#") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$#"),+  CFunc ("CEventOracle","$##") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$##"),+  CFunc ("CEventOracle","apply") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "apply"),+  CFunc ("CEventOracle","closeRef") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "closeRef"),+  CFunc ("CEventOracle","collapse") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "collapse"),+  CFunc ("CEventOracle","expand") 3 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("CEventOracle","Ref") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CExternal "expand"),+  CFunc ("CEventOracle","finalize") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "finalize"),+  CFunc ("CEventOracle","fresh") 1 Public (CFuncType (CTCons ("Prelude","()") []) (CTCons ("CEventOracle","Ref") [])) (CExternal "fresh"),+  CFunc ("CEventOracle","initRef") 0 Public (CTCons ("Prelude","IO") [CTCons ("CEventOracle","Ref") []]) (CExternal "initRef"),+  CFunc ("CEventOracle","initialize") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"mod")) (CSymbol ("System","getProgName")),CSLet [CLocalPat (CPVar (2,"extFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 't'))) (CSymbol ("Prelude","[]"))))))) []],CSExpr (CApply (CApply (CSymbol ("IOExts","setAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))) (CVar (2,"extFile"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (2,"extFile"))) (CSymbol ("Prelude","[]"))),CSPat (CPVar (3,"mainR")) (CSymbol ("CEventOracle","initRef")),CSPat (CPVar (4,"x")) (CApply (CVar (0,"app")) (CVar (3,"mainR"))),CSPat (CPVar (5,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CVar (4,"x"))),CSExpr (CApply (CApply (CSymbol ("Prelude","catchFail")) (CDoExpr [CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (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 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 '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 ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Prelude","return"))) (CVar (5,"st")))])) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (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 '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 'W'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (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 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 '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 (CSymbol ("Prelude","return")) (CSymbol ("Prelude","failed"))))),CSExpr (CApply (CSymbol ("CEventOracle","finalize")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))))))))])] []]),+  CFunc ("CEventOracle","replace") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "replace"),+  CFunc ("CEventOracle","unknown") 1 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CExternal "unknown")]+ []
+ src/lib/Curry/Module/.curry/CEventOracle.cy view
@@ -0,0 +1,32 @@+Module "CEventOracle"+Nothing+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)+,(ImportDecl (3,1) "IOExts" False Nothing (Just (Importing (3,15) [(Import (Ident "setAssoc" 0))])))+,(ImportDecl (4,1) "System" False Nothing (Just (Importing (4,15) [(Import (Ident "getProgName" 0))])))+,(ImportDecl (5,1) "Prelude" False (Just "P") Nothing)+,(DataDecl (11,1) (Ident "Ref" 0) [] [])+,(TypeSig (13,1) [(Ident "initialize" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FunctionDecl (14,1) (Ident "initialize" 0) [(Equation (14,1) (FunLhs (Ident "initialize" 0) [(VariablePattern (Ident "app" 2))]) (SimpleRhs (14,18) (Do [(StmtBind (VariablePattern (Ident "mod" 4)) (Variable (QualIdent (Just "System") (Ident "getProgName" 0)))),(StmtDecl [(PatternDecl (16,9) (VariablePattern (Ident "extFile" 5)) (SimpleRhs (16,19) (InfixApply (Variable (QualIdent Nothing (Ident "mod" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".ext"))) []))]),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "setAssoc" 0))) (Literal (String "extfn"))) (Variable (QualIdent Nothing (Ident "extFile" 5))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "extFile" 5)))) (Literal (String "")))),(StmtBind (VariablePattern (Ident "mainR" 7)) (Variable (QualIdent (Just "CEventOracle") (Ident "initRef" 0)))),(StmtBind (VariablePattern (Ident "x" 8)) (Apply (Variable (QualIdent Nothing (Ident "app" 2))) (Variable (QualIdent Nothing (Ident "mainR" 7))))),(StmtBind (VariablePattern (Ident "st" 9)) (Apply (Variable (QualIdent (Just "Prelude") (Ident "getSearchTree" 0))) (Variable (QualIdent Nothing (Ident "x" 8))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (Do [(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "starting to record oracle"))))] (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "st" 9))))))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "execution aborted. Writing oracle file"))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent (Just "Prelude") (Ident "failed" 0))))))))] (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "finalize" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mod" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".steps")))))) []))])+,(TypeSig (28,1) [(Ident "initRef" 0)] (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])]))+,(FlatExternalDecl (29,1) [(Ident "initRef" 0)])+,(TypeSig (32,1) [(Ident "finalize" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FlatExternalDecl (33,1) [(Ident "finalize" 0)])+,(TypeSig (35,1) [(Ident "fresh" 0)] (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])))+,(FlatExternalDecl (36,1) [(Ident "fresh" 0)])+,(TypeSig (38,1) [(Ident "replace" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FlatExternalDecl (39,1) [(Ident "replace" 0)])+,(TypeSig (41,1) [(Ident "collapse" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FlatExternalDecl (42,1) [(Ident "collapse" 0)])+,(TypeSig (44,1) [(Ident "closeRef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FlatExternalDecl (45,1) [(Ident "closeRef" 0)])+,(TypeSig (47,1) [(Ident "expand" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))+,(FlatExternalDecl (48,1) [(Ident "expand" 0)])+,(TypeSig (51,1) [(Ident "unknown" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))))+,(FlatExternalDecl (52,1) [(Ident "unknown" 0)])+,(TypeSig (54,1) [(Ident "$!" 0),(Ident "$!!" 0),(Ident "$#" 0),(Ident "$##" 0),(Ident "apply" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FlatExternalDecl (55,1) [(Ident "$!" 0)])+,(FlatExternalDecl (56,1) [(Ident "$!!" 0)])+,(FlatExternalDecl (57,1) [(Ident "$#" 0)])+,(FlatExternalDecl (58,1) [(Ident "$##" 0)])+,(FlatExternalDecl (59,1) [(Ident "apply" 0)])+]
+ src/lib/Curry/Module/.curry/CEventOracle.efc view
@@ -0,0 +1,1 @@+Prog "CEventOracle" ["IOExts","Prelude","System"] [Type ((Nothing,Nothing,"CEventOracle","Ref")) Public [] []] [Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"CEventOracle","initialize")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),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","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"System","getProgName")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 10])) (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,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])),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","[]") [TVar 19]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 19]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TVar 18) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 18]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TVar 17) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 17]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 16) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 16]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TVar 15) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 15]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TVar 14),"Prelude","[]")) []]]]]])] (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") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","setAssoc")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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","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","[]") [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") []]),3)),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,"CEventOracle","Ref") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (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,"CEventOracle","Ref") []]),"CEventOracle","initRef")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"CEventOracle","initialize._#lambda2._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]]]]))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"CEventOracle","initialize._#lambda2._#lambda3")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 10])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10]) (FuncType (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 10])),1)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 10) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2._#lambda3._#lambda4")) [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 (TVar 10) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2._#lambda3._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 10) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 10),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (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 10) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]])),"Prelude","getSearchTree")) [Var ((Just (TVar 10),2))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#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","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","SearchTree")) [TVar 10]) (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","SearchTree") [TVar 10]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]) (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","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]))),"Prelude","catchFail")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]))),"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  '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  '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  '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  '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  '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  '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  '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  '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 (FuncType (TCons (Nothing,Nothing,"Prelude","Char") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]))),"Prelude",":")) [Lit (Charc  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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 FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]])) (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]])),"Prelude","return")) [],Var ((Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]),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","SearchTree") [TVar 10]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]]))),"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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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 FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]])),"Prelude","return")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","SearchTree") [TVar 10]),"Prelude","failed")) []]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"CEventOracle","finalize")) [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  '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  '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  's'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]])),Func ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]),"CEventOracle","initRef")) 0 Public (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"CEventOracle","Ref")) []]) (External "CEventOracle.initRef"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"CEventOracle","finalize")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (External "CEventOracle.finalize"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"CEventOracle","Ref") [])),"CEventOracle","fresh")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"CEventOracle","Ref")) [])) (External "CEventOracle.fresh"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))),"CEventOracle","replace")) 2 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.replace"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))),"CEventOracle","collapse")) 2 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.collapse"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))),"CEventOracle","closeRef")) 2 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.closeRef"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))),"CEventOracle","expand")) 3 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"CEventOracle","Ref")) []]) (FuncType (TVar 0) (TVar 0)))) (External "CEventOracle.expand"),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)),"CEventOracle","unknown")) 1 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 0)) (External "CEventOracle.unknown"),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$!")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (External "CEventOracle.$!"),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$!!")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (External "CEventOracle.$!!"),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$#")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (External "CEventOracle.$#"),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$##")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (External "CEventOracle.$##"),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","apply")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (External "CEventOracle.apply")] []
+ src/lib/Curry/Module/.curry/CEventOracle.fcy view
@@ -0,0 +1,1 @@+Prog "CEventOracle" ["IOExts","Prelude","System"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getProgName") [],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2") [Var 1]])),Func ("CEventOracle","initialize._#lambda2") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 10])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","setAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]],Var 3],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("CEventOracle","initRef") [],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3") [Var 1,Var 2]]]]))),Func ("CEventOracle","initialize._#lambda2._#lambda3") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 10])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4") [Var 2]])),Func ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 10) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","getSearchTree") [Var 2],Comb (FuncPartCall 1) ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") [Var 1]])),Func ("CEventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","SearchTree") [TVar 10]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 2]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'b'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'W'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","return") [Comb FuncCall ("Prelude","failed") []]]],Comb FuncCall ("CEventOracle","finalize") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]]]]])),Func ("CEventOracle","initRef") 0 Public (TCons ("Prelude","IO") [TCons ("CEventOracle","Ref") []]) (External "CEventOracle.initRef"),Func ("CEventOracle","finalize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "CEventOracle.finalize"),Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (External "CEventOracle.fresh"),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.replace"),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.collapse"),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.closeRef"),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (External "CEventOracle.expand"),Func ("CEventOracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (External "CEventOracle.unknown"),Func ("CEventOracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!"),Func ("CEventOracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!!"),Func ("CEventOracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$#"),Func ("CEventOracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$##"),Func ("CEventOracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.apply")] []
+ src/lib/Curry/Module/.curry/CEventOracle.fint view
@@ -0,0 +1,1 @@+Prog "CEventOracle" ["IOExts","Prelude","System"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("CEventOracle","initRef") 0 Public (TCons ("Prelude","IO") [TCons ("CEventOracle","Ref") []]) (External "CEventOracle.initRef"),Func ("CEventOracle","finalize") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (External "CEventOracle.finalize"),Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (External "CEventOracle.fresh"),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.replace"),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.collapse"),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (External "CEventOracle.closeRef"),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (External "CEventOracle.expand"),Func ("CEventOracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (External "CEventOracle.unknown"),Func ("CEventOracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!"),Func ("CEventOracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$!!"),Func ("CEventOracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$#"),Func ("CEventOracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.$##"),Func ("CEventOracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (External "CEventOracle.apply")] []
+ src/lib/Curry/Module/.curry/CEventOracle.uacy view
@@ -0,0 +1,18 @@+CurryProg "CEventOracle"+ ["Prelude","IOExts","System","Prelude"]+ [CType ("CEventOracle","Ref") Public [] []]+ [CFunc ("CEventOracle","$!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$!"),+  CFunc ("CEventOracle","$!!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$!!"),+  CFunc ("CEventOracle","$#") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$#"),+  CFunc ("CEventOracle","$##") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "$##"),+  CFunc ("CEventOracle","apply") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CExternal "apply"),+  CFunc ("CEventOracle","closeRef") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "closeRef"),+  CFunc ("CEventOracle","collapse") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "collapse"),+  CFunc ("CEventOracle","expand") 3 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("CEventOracle","Ref") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CExternal "expand"),+  CFunc ("CEventOracle","finalize") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CExternal "finalize"),+  CFunc ("CEventOracle","fresh") 1 Public (CFuncType (CTCons ("Prelude","()") []) (CTCons ("CEventOracle","Ref") [])) (CExternal "fresh"),+  CFunc ("CEventOracle","initRef") 0 Public (CTCons ("Prelude","IO") [CTCons ("CEventOracle","Ref") []]) (CExternal "initRef"),+  CFunc ("CEventOracle","initialize") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"mod")) (CSymbol ("System","getProgName")),CSLet [CLocalPat (CPVar (2,"extFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 't'))) (CSymbol ("Prelude","[]"))))))) []],CSExpr (CApply (CApply (CSymbol ("IOExts","setAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))) (CVar (2,"extFile"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (2,"extFile"))) (CSymbol ("Prelude","[]"))),CSPat (CPVar (3,"mainR")) (CSymbol ("CEventOracle","initRef")),CSPat (CPVar (4,"x")) (CApply (CVar (0,"app")) (CVar (3,"mainR"))),CSPat (CPVar (5,"st")) (CApply (CSymbol ("Prelude","getSearchTree")) (CVar (4,"x"))),CSExpr (CApply (CApply (CSymbol ("Prelude","catchFail")) (CDoExpr [CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (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 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 '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 ' '))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Prelude","return"))) (CVar (5,"st")))])) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'b'))) (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 '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 'W'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (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 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 '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 (CSymbol ("Prelude","return")) (CSymbol ("Prelude","failed"))))),CSExpr (CApply (CSymbol ("CEventOracle","finalize")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]"))))))))))])] []]),+  CFunc ("CEventOracle","replace") 2 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CExternal "replace"),+  CFunc ("CEventOracle","unknown") 1 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CExternal "unknown")]+ []
+ src/lib/Curry/Module/.curry/EventOracle.acy view
@@ -0,0 +1,16 @@+CurryProg "EventOracle"+ ["Prelude","IOExts","Unsafe","System"]+ [CTypeSyn ("EventOracle","Ref") Public [] (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]),+  CType ("EventOracle","Node") Public [] [CCons ("EventOracle","Node") 3 Public [CTCons ("EventOracle","Ref") [],CTCons ("EventOracle","Cost") [],CTCons ("EventOracle","Ref") []],CCons ("EventOracle","Marker") 0 Public [],CCons ("EventOracle","Collapsed") 0 Public []],+  CTypeSyn ("EventOracle","Cost") Public [] (CTCons ("Prelude","Int") [])]+ [CFunc ("EventOracle","closeRef") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","collapse") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","expand") 3 Public (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"refs"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (3,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (3,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (4,"p"),CPVar (5,"c"),CPVar (6,"s")]) (CDoExpr [CSPat (CPVar (7,"last")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("EventOracle","toAssocList"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (5,"c"))) (CLit (CIntc 1)))) (CVar (4,"p"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"ref"))) (CVar (1,"refs")))) (CVar (6,"s"))),CSPat (CPVar (8,"suc")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (6,"s"))),CSExpr (CCase (CVar (8,"suc")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (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 'f'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'y'))) (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 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"s"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (7,"last"))) (CVar (10,"sc"))) (CVar (11,"ss")))),CBranch (CPComb ("EventOracle","Marker") []) (CSymbol ("Prelude","done"))])])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))]))] []]),+  CFunc ("EventOracle","finalize") 3 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"mod"),CPVar (1,"fmR"),CPVar (2,"endR")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"l")]) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (1,"fmR"))) (CVar (2,"endR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"mod"))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))])] []]),+  CFunc ("EventOracle","fresh") 1 Public (CFuncType (CTCons ("Prelude","()") []) (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []])) (CRules CFlex [CRule [CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (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 'h'))) (CSymbol ("Prelude","[]"))))))))))] []]),+  CFunc ("EventOracle","initialize") 1 Public (CFuncType (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"mod")) (CSymbol ("System","getProgName")),CSLet [CLocalPat (CPVar (2,"extFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 't'))) (CSymbol ("Prelude","[]"))))))) []],CSExpr (CApply (CApply (CSymbol ("IOExts","setAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))) (CVar (2,"extFile"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (2,"extFile"))) (CSymbol ("Prelude","[]"))),CSPat (CPVar (3,"startMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (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 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))))),CSPat (CPVar (4,"endMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (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 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))),CSPat (CPVar (5,"mainR")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"startMarker"))) (CLit (CIntc 0))) (CVar (4,"endMarker")))),CSPat (CPVar (6,"marker")) (CApply (CSymbol ("IOExts","newIORef")) (CSymbol ("EventOracle","Marker"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"startMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"marker"))) (CLit (CIntc 0))) (CVar (5,"mainR")))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (4,"endMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"mainR"))) (CLit (CIntc 0))) (CVar (6,"marker")))),CSPat (CPVar (7,"x")) (CApply (CVar (0,"app")) (CVar (5,"mainR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Prelude","return"))) (CVar (7,"x"))),CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (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 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]"))))))))))))),CSExpr (CApply (CApply (CApply (CSymbol ("EventOracle","finalize")) (CVar (1,"mod"))) (CVar (3,"startMarker"))) (CVar (4,"endMarker"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()")))])] []]),+  CFunc ("EventOracle","pointerToList") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("Prelude","Int") []]]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"end")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"_"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPVar (6,"cs")) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (5,"s"))) (CVar (1,"end"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"c"))) (CVar (6,"cs"))))]),CBranch (CPComb ("EventOracle","Marker") []) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))])])] []]),+  CFunc ("EventOracle","replace") 2 Public (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (5,"s"))))]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","toAssocList") 4 Public (CFuncType (CTCons ("Prelude","Int") []) (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CFuncType (CTCons ("Prelude","[]") [CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]]) (CFuncType (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]) (CTCons ("Prelude","IO") [CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]]))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"r"),CPComb ("Prelude","[]") []],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (2,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (1,"p"))) (CVar (0,"c"))) (CVar (3,"s"))))) (CApply (CSymbol ("Prelude","return")) (CVar (2,"r"))))] [],CRule [CPVar (4,"c"),CPVar (5,"p"),CPComb ("Prelude",":") [CPVar (6,"r"),CPAs (9,"rs") (CPComb ("Prelude",":") [CPVar (7,"r'"),CPVar (8,"_")])],CPVar (10,"s")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"p"))) (CVar (4,"c"))) (CVar (7,"r'")))),CSExpr (CApply (CApply (CApply (CApply (CSymbol ("EventOracle","toAssocList")) (CLit (CIntc 0))) (CVar (6,"r"))) (CVar (9,"rs"))) (CVar (10,"s")))])] []]),+  CFunc ("EventOracle","warning") 1 Public (CFuncType (CTCons ("Prelude","[]") [CTCons ("Prelude","Char") []]) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"msg")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStrLn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'W'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (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 ' '))) (CSymbol ("Prelude","[]")))))))))))) (CVar (0,"msg"))))] []])]+ []
+ src/lib/Curry/Module/.curry/EventOracle.cy view
@@ -0,0 +1,30 @@+Module "EventOracle"+Nothing+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)+,(ImportDecl (3,1) "IOExts" False Nothing Nothing)+,(ImportDecl (4,1) "Unsafe" False Nothing Nothing)+,(ImportDecl (5,1) "System" False Nothing (Just (Importing (5,15) [(Import (Ident "getProgName" 0))])))+,(TypeDecl (8,1) (Ident "Ref" 0) [] (ConstructorType (QualIdent Nothing (Ident "IORef" 0)) [(ConstructorType (QualIdent Nothing (Ident "Node" 0)) [])]))+,(DataDecl (9,1) (Ident "Node" 0) [] [(ConstrDecl (9,13) [] (Ident "Node" 0) [(ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Cost" 0)) []),(ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])]),(ConstrDecl (9,33) [] (Ident "Marker" 0) []),(ConstrDecl (9,42) [] (Ident "Collapsed" 0) [])])+,(TypeDecl (10,1) (Ident "Cost" 0) [] (ConstructorType (QualIdent Nothing (Ident "Int" 0)) []))+,(TypeSig (12,1) [(Ident "initialize" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FunctionDecl (13,1) (Ident "initialize" 0) [(Equation (13,1) (FunLhs (Ident "initialize" 0) [(VariablePattern (Ident "app" 2))]) (SimpleRhs (13,18) (Do [(StmtBind (VariablePattern (Ident "mod" 4)) (Variable (QualIdent (Just "System") (Ident "getProgName" 0)))),(StmtDecl [(PatternDecl (15,9) (VariablePattern (Ident "extFile" 5)) (SimpleRhs (15,19) (InfixApply (Variable (QualIdent Nothing (Ident "mod" 4))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".ext"))) []))]),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "setAssoc" 0))) (Literal (String "extfn"))) (Variable (QualIdent Nothing (Ident "extFile" 5))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Variable (QualIdent Nothing (Ident "extFile" 5)))) (Literal (String "")))),(StmtBind (VariablePattern (Ident "startMarker" 7)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "newIORef" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "startMarker")))))),(StmtBind (VariablePattern (Ident "endMarker" 8)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "newIORef" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "endMarker")))))),(StmtBind (VariablePattern (Ident "mainR" 10)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "newIORef" 0))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "startMarker" 7)))) (Literal (Int (Ident "_" 9) 0))) (Variable (QualIdent Nothing (Ident "endMarker" 8))))))),(StmtBind (VariablePattern (Ident "marker" 11)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "newIORef" 0))) (Constructor (QualIdent (Just "EventOracle") (Ident "Marker" 0))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "startMarker" 7)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "marker" 11)))) (Literal (Int (Ident "_" 12) 0))) (Variable (QualIdent Nothing (Ident "mainR" 10))))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "endMarker" 8)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "mainR" 10)))) (Literal (Int (Ident "_" 13) 0))) (Variable (QualIdent Nothing (Ident "marker" 11))))))),(StmtBind (VariablePattern (Ident "x" 14)) (Apply (Variable (QualIdent Nothing (Ident "app" 2))) (Variable (QualIdent Nothing (Ident "mainR" 10))))),(StmtExpr (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 14))))),(StmtExpr (Apply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (Literal (String "finalizing")))),(StmtExpr (Apply (Apply (Apply (Variable (QualIdent (Just "EventOracle") (Ident "finalize" 0))) (Variable (QualIdent Nothing (Ident "mod" 4)))) (Variable (QualIdent Nothing (Ident "startMarker" 7)))) (Variable (QualIdent Nothing (Ident "endMarker" 8)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Tuple []))) []))])+,(TypeSig (31,1) [(Ident "finalize" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))))+,(FunctionDecl (32,1) (Ident "finalize" 0) [(Equation (32,1) (FunLhs (Ident "finalize" 0) [(VariablePattern (Ident "mod" 15)),(VariablePattern (Ident "fmR" 15)),(VariablePattern (Ident "endR" 15))]) (SimpleRhs (32,25) (Do [(StmtBind (InfixPattern (VariablePattern (Ident "_" 18)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "l" 17))) (Apply (Apply (Variable (QualIdent (Just "EventOracle") (Ident "pointerToList" 0))) (Variable (QualIdent Nothing (Ident "fmR" 15)))) (Variable (QualIdent Nothing (Ident "endR" 15)))))] (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "writeFile" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "mod" 15))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String ".steps"))))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "l" 17)))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Literal (String "\n.\n")))))) []))])+,(TypeSig (37,1) [(Ident "fresh" 0)] (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])))+,(FunctionDecl (38,1) (Ident "fresh" 0) [(Equation (38,1) (FunLhs (Ident "fresh" 0) [(VariablePattern (Ident "_" 20))]) (SimpleRhs (38,11) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Apply (Variable (QualIdent (Just "IOExts") (Ident "newIORef" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "fresh"))))))) []))])+,(TypeSig (41,1) [(Ident "replace" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FunctionDecl (42,1) (Ident "replace" 0) [(Equation (42,1) (FunLhs (Ident "replace" 0) [(VariablePattern (Ident "ref" 22)),(VariablePattern (Ident "x" 22))]) (SimpleRhs (42,17) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Do [(StmtBind (VariablePattern (Ident "node" 24)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 22))))),(StmtExpr (Case (Variable (QualIdent Nothing (Ident "node" 24))) [(Alt (46,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (46,20) (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "tried to replace collapsed ref"))) [])),(Alt (47,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "p" 27)),(VariablePattern (Ident "c" 27)),(VariablePattern (Ident "s" 27))]) (SimpleRhs (47,21) (InfixApply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 22)))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "p" 27)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 27))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 29) 1))))) (Variable (QualIdent Nothing (Ident "s" 27)))))) []))]))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 22))))))) []))])+,(TypeSig (51,1) [(Ident "collapse" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FunctionDecl (52,1) (Ident "collapse" 0) [(Equation (52,1) (FunLhs (Ident "collapse" 0) [(VariablePattern (Ident "ref" 30)),(VariablePattern (Ident "x" 30))]) (SimpleRhs (52,18) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Do [(StmtBind (VariablePattern (Ident "node" 32)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 30))))),(StmtExpr (Case (Variable (QualIdent Nothing (Ident "node" 32))) [(Alt (56,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (56,20) (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "tried to collapse collapsed ref"))) [])),(Alt (57,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "p" 35)),(VariablePattern (Ident "c" 35)),(VariablePattern (Ident "s" 35))]) (SimpleRhs (57,21) (Do [(StmtBind (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "pp" 37)),(VariablePattern (Ident "pc" 37)),(VariablePattern (Ident "_" 38))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "p" 35))))),(StmtBind (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "_" 40)),(VariablePattern (Ident "sc" 39)),(VariablePattern (Ident "ss" 39))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 35))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 30)))) (Constructor (QualIdent (Just "EventOracle") (Ident "Collapsed" 0))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "p" 35)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "pp" 37)))) (Variable (QualIdent Nothing (Ident "pc" 37)))) (Variable (QualIdent Nothing (Ident "s" 35)))))))] (InfixApply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 35)))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "p" 35)))) (Paren (InfixApply (InfixApply (Variable (QualIdent Nothing (Ident "c" 35))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 41) 1))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "sc" 39)))))) (Variable (QualIdent Nothing (Ident "ss" 39))))))) []))]))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 30))))))) []))])+,(TypeSig (67,1) [(Ident "closeRef" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0)))))+,(FunctionDecl (68,1) (Ident "closeRef" 0) [(Equation (68,1) (FunLhs (Ident "closeRef" 0) [(VariablePattern (Ident "ref" 42)),(VariablePattern (Ident "x" 42))]) (SimpleRhs (68,18) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Do [(StmtBind (VariablePattern (Ident "node" 44)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 42))))),(StmtExpr (Case (Variable (QualIdent Nothing (Ident "node" 44))) [(Alt (72,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (72,20) (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "tried to collapse collapsed ref"))) [])),(Alt (73,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "p" 47)),(VariablePattern (Ident "c" 47)),(VariablePattern (Ident "s" 47))]) (SimpleRhs (73,21) (Do [(StmtBind (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "pp" 49)),(VariablePattern (Ident "pc" 49)),(VariablePattern (Ident "_" 50))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "p" 47))))),(StmtBind (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "_" 52)),(VariablePattern (Ident "sc" 51)),(VariablePattern (Ident "ss" 51))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 47))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 42)))) (Constructor (QualIdent (Just "EventOracle") (Ident "Collapsed" 0))))),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "p" 47)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "pp" 49)))) (Variable (QualIdent Nothing (Ident "pc" 49)))) (Variable (QualIdent Nothing (Ident "s" 47)))))))] (InfixApply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 47)))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "p" 47)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 47))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Variable (QualIdent Nothing (Ident "sc" 51)))))) (Variable (QualIdent Nothing (Ident "ss" 51))))))) []))]))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 42))))))) []))])+,(TypeSig (85,1) [(Ident "expand" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "a" 0))))))+,(FunctionDecl (86,1) (Ident "expand" 0) [(Equation (86,1) (FunLhs (Ident "expand" 0) [(VariablePattern (Ident "ref" 53)),(VariablePattern (Ident "refs" 53)),(VariablePattern (Ident "x" 53))]) (SimpleRhs (86,21) (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Do [(StmtBind (VariablePattern (Ident "node" 55)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 53))))),(StmtExpr (Case (Variable (QualIdent Nothing (Ident "node" 55))) [(Alt (91,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (91,20) (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "tried to expand collapsed ref"))) [])),(Alt (92,7) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "p" 58)),(VariablePattern (Ident "c" 58)),(VariablePattern (Ident "s" 58))]) (SimpleRhs (92,21) (Do [(StmtBind (VariablePattern (Ident "last" 61)) (Apply (Apply (Apply (Paren (InfixApply (Variable (QualIdent (Just "EventOracle") (Ident "toAssocList" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$!!" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 58))) (InfixOp (QualIdent (Just "Prelude") (Ident "+" 0))) (Literal (Int (Ident "_" 60) 1)))))) (Variable (QualIdent Nothing (Ident "p" 58)))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "ref" 53))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "refs" 53)))))) (Variable (QualIdent Nothing (Ident "s" 58))))),(StmtBind (VariablePattern (Ident "suc" 62)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 58)))))] (Case (Variable (QualIdent Nothing (Ident "suc" 62))) [(Alt (96,11) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (96,24) (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "successor of expanded ref is already collapsed"))) [])),(Alt (97,11) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "_" 66)),(VariablePattern (Ident "sc" 65)),(VariablePattern (Ident "ss" 65))]) (SimpleRhs (97,27) (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "s" 58)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "last" 61)))) (Variable (QualIdent Nothing (Ident "sc" 65)))) (Variable (QualIdent Nothing (Ident "ss" 65)))))) [])),(Alt (98,11) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Marker" 0)) []) (SimpleRhs (98,21) (Variable (QualIdent (Just "Prelude") (Ident "done" 0))) []))])) []))]))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 53))))))) []))])+,(TypeSig (101,1) [(Ident "toAssocList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Cost" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ListType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ConstructorType (QualIdent Nothing (Ident "Ref" 0)) [])]))))))+,(FunctionDecl (102,1) (Ident "toAssocList" 0) [(Equation (102,1) (FunLhs (Ident "toAssocList" 0) [(VariablePattern (Ident "c" 70)),(VariablePattern (Ident "p" 70)),(ListPattern [(VariablePattern (Ident "r" 70))]),(VariablePattern (Ident "s" 70))]) (SimpleRhs (102,25) (InfixApply (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "r" 70)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "p" 70)))) (Variable (QualIdent Nothing (Ident "c" 70)))) (Variable (QualIdent Nothing (Ident "s" 70)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "r" 70))))) [])),(Equation (103,1) (FunLhs (Ident "toAssocList" 0) [(VariablePattern (Ident "c" 72)),(VariablePattern (Ident "p" 72)),(ParenPattern (InfixPattern (VariablePattern (Ident "r" 72)) (QualIdent Nothing (Ident ":" 0)) (AsPattern (Ident "rs" 72) (ParenPattern (InfixPattern (VariablePattern (Ident "r'" 72)) (QualIdent Nothing (Ident ":" 0)) (VariablePattern (Ident "_" 73))))))),(VariablePattern (Ident "s" 72))]) (SimpleRhs (103,35) (Do [(StmtExpr (Apply (Apply (Variable (QualIdent (Just "IOExts") (Ident "writeIORef" 0))) (Variable (QualIdent Nothing (Ident "r" 72)))) (Paren (Apply (Apply (Apply (Constructor (QualIdent (Just "EventOracle") (Ident "Node" 0))) (Variable (QualIdent Nothing (Ident "p" 72)))) (Variable (QualIdent Nothing (Ident "c" 72)))) (Variable (QualIdent Nothing (Ident "r'" 72)))))))] (Apply (Apply (Apply (Apply (Variable (QualIdent (Just "EventOracle") (Ident "toAssocList" 0))) (Literal (Int (Ident "_" 75) 0))) (Variable (QualIdent Nothing (Ident "r" 72)))) (Variable (QualIdent Nothing (Ident "rs" 72)))) (Variable (QualIdent Nothing (Ident "s" 72))))) []))])+,(TypeSig (107,1) [(Ident "pointerToList" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(ListType (ConstructorType (QualIdent Nothing (Ident "Cost" 0)) []))]))))+,(FunctionDecl (108,1) (Ident "pointerToList" 0) [(Equation (108,1) (FunLhs (Ident "pointerToList" 0) [(VariablePattern (Ident "ref" 76)),(VariablePattern (Ident "end" 76))]) (SimpleRhs (108,25) (Do [(StmtBind (VariablePattern (Ident "node" 78)) (Apply (Variable (QualIdent (Just "IOExts") (Ident "readIORef" 0))) (Variable (QualIdent Nothing (Ident "ref" 76)))))] (Case (Variable (QualIdent Nothing (Ident "node" 78))) [(Alt (111,5) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Collapsed" 0)) []) (SimpleRhs (111,18) (InfixApply (Apply (Variable (QualIdent (Just "EventOracle") (Ident "warning" 0))) (Literal (String "final list contains collapsed reference"))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List []))) [])),(Alt (112,5) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Node" 0)) [(VariablePattern (Ident "_" 82)),(VariablePattern (Ident "c" 81)),(VariablePattern (Ident "s" 81))]) (SimpleRhs (112,19) (Do [(StmtBind (VariablePattern (Ident "cs" 84)) (Apply (Apply (Variable (QualIdent (Just "EventOracle") (Ident "pointerToList" 0))) (Variable (QualIdent Nothing (Ident "s" 81)))) (Variable (QualIdent Nothing (Ident "end" 76)))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Paren (InfixApply (Variable (QualIdent Nothing (Ident "c" 81))) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "cs" 84))))))) [])),(Alt (115,5) (ConstructorPattern (QualIdent (Just "EventOracle") (Ident "Marker" 0)) []) (SimpleRhs (115,15) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (List [])) []))])) []))])+,(TypeSig (117,1) [(Ident "warning" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "String" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FunctionDecl (118,1) (Ident "warning" 0) [(Equation (118,1) (FunLhs (Ident "warning" 0) [(VariablePattern (Ident "msg" 87))]) (SimpleRhs (118,15) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "putStrLn" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "$" 0))) (InfixApply (Literal (String "WARNING: ")) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (Variable (QualIdent Nothing (Ident "msg" 87))))) []))])+]
+ src/lib/Curry/Module/.curry/EventOracle.efc view
@@ -0,0 +1,1 @@+Prog "EventOracle" ["IOExts","Prelude","System","Unsafe"] [TypeSyn ((Nothing,Nothing,"EventOracle","Ref")) Public [] (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]),TypeSyn ((Nothing,Nothing,"EventOracle","Cost")) Public [] (TCons ((Nothing,Nothing,"Prelude","Int")) []),Type ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) Public [] [Cons ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) 3 Public [TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []],TCons ((Nothing,Nothing,"Prelude","Int")) [],TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]],Cons ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) 0 Public [],Cons ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) 0 Public []]] [Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","initialize")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),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","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),"System","getProgName")) [],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","initialize._#lambda2")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),1))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","initialize._#lambda2")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 59])) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),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","[]") [TVar 69]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 69]))),"Prelude","++")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TVar 68) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 68]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 68]))),"Prelude",":")) [Lit (Charc  '.'),Comb ConsCall ((Nothing,Just (FuncType (TVar 67) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 67]))),"Prelude",":")) [Lit (Charc  'e'),Comb ConsCall ((Nothing,Just (FuncType (TVar 66) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 66]))),"Prelude",":")) [Lit (Charc  'x'),Comb ConsCall ((Nothing,Just (FuncType (TVar 65) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]) (TCons (Nothing,Nothing,"Prelude","[]") [TVar 65]))),"Prelude",":")) [Lit (Charc  't'),Comb ConsCall ((Nothing,Just (TVar 64),"Prelude","[]")) []]]]]])] (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") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","setAssoc")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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","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","[]") [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") []]),3)),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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (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,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"IOExts","newIORef")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])),"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  '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  '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  '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  '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  '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  '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  '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","[]")) []]]]]]]]]]]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","initialize._#lambda2._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2))]]]]))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","initialize._#lambda2._#lambda3")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 59])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (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,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"IOExts","newIORef")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])),"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  '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  '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  '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  '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  '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","[]")) []]]]]]]]]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4")) 4 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 59])) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (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,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"IOExts","newIORef")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)),Lit (Intc  0),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5")) 5 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 59])) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (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,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"IOExts","newIORef")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6")) 6 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 59])) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)] (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)),Lit (Intc  0),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)),Lit (Intc  0),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59]) (FuncType (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59]))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),4)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5))]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))))),"EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7")) 4 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 59) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TVar 59),4)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59]) (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 (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])) (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TVar 59) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 59])),"Prelude","return")) [],Var ((Just (TVar 59),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,"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  '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  '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  '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  '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","[]")) []]]]]]]]]]]],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") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","finalize")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],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","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","finalize")) 3 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","finalize._#lambda8")) [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","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","finalize._#lambda8")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (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","Int") []]),2)] (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") []),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","Char") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","writeFile")) [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  '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  '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  's'),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","Int") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),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",":")) [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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"EventOracle","fresh")) 1 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","()") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"Unsafe","unsafePerformIO")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"IOExts","newIORef")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])),"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  '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  '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  'h'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))),"EventOracle","replace")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"EventOracle","replace._#lambda9")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 76) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 76])))),"EventOracle","replace._#lambda9")) 3 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 76) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 76])))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TVar 76),2),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 76]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 76]))),"Prelude",">>")) [Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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") []),5)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","failed")) [])],Comb FuncCall ((Nothing,Just (FuncType (TVar 76) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 76])),"Prelude","return")) [Var ((Just (TVar 76),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))),"EventOracle","collapse")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"EventOracle","collapse._#lambda11")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 93) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 93])))),"EventOracle","collapse._#lambda11")) 3 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 93) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 93])))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TVar 93),2),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 93]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 93]))),"Prelude",">>")) [Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","collapse._#lambda11._#lambda13")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","failed")) [])],Comb FuncCall ((Nothing,Just (FuncType (TVar 93) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 93])),"Prelude","return")) [Var ((Just (TVar 93),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","collapse._#lambda11._#lambda13")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))))),"EventOracle","collapse._#lambda11._#lambda13._#lambda14")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))))),"EventOracle","collapse._#lambda11._#lambda13._#lambda14")) 7 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),7)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),7))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),8),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),10)]) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []],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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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") []),1)),Lit (Intc  1)],Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9))],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),10))]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))),"EventOracle","closeRef")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 0) (TVar 0))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"EventOracle","closeRef._#lambda15")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TVar 0),2))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TVar 123) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 123])))),"EventOracle","closeRef._#lambda15")) 3 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TVar 123) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 123])))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TVar 123),2),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 123]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 123]))),"Prelude",">>")) [Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","closeRef._#lambda15._#lambda17")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","failed")) [])],Comb FuncCall ((Nothing,Just (FuncType (TVar 123) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 123])),"Prelude","return")) [Var ((Just (TVar 123),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))),"EventOracle","closeRef._#lambda15._#lambda17")) 5 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),5)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),5))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),7),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))))),"EventOracle","closeRef._#lambda15._#lambda17._#lambda18")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),7)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))))))),"EventOracle","closeRef._#lambda15._#lambda17._#lambda18")) 7 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),7)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),7))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),8),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),9),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),10)]) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []],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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),3)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude","$!!")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),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") []),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),9))],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),10))]]]])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TVar 0) (TVar 0)))),"EventOracle","expand")) 3 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]]) (FuncType (TVar 0) (TVar 0)))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),2),(Just (TVar 0),3)] (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,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"EventOracle","expand._#lambda19")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),2)),Var ((Just (TVar 0),3))]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TVar 175) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 175]))))),"EventOracle","expand._#lambda19")) 4 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]]) (FuncType (TVar 175) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 175]))))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),2),(Just (TVar 175),3),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),4)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 175]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 175]))),"Prelude",">>")) [Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),4))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),6),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),7)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])))) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])))))),"Prelude","$!!")) [Comb (FuncPartCall 4) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))))),"EventOracle","toAssocList")) [],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)),Lit (Intc  1)]],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5))],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),2))]],Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),7))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","expand._#lambda19._#lambda21")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),7))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","failed")) [])],Comb FuncCall ((Nothing,Just (FuncType (TVar 175) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 175])),"Prelude","return")) [Var ((Just (TVar 175),3))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"EventOracle","expand._#lambda19._#lambda21")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []]))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (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,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","expand._#lambda19._#lambda21._#lambda22")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])))),"EventOracle","expand._#lambda19._#lambda21._#lambda22")) 3 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),3))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  ' '),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  '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","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),5),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),5)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),6))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]),"Prelude","done")) [])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))))),"EventOracle","toAssocList")) 4 Public (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]]))))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","Int") []),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),3),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),3))) [Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),6)]) (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),6))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),"Prelude","[]")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]])),"Prelude","return")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5))]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude",":")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),7),(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),8)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]))),"IOExts","writeIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),1)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),7))]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]))))),"EventOracle","toAssocList")) [Lit (Intc  0),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]]),6)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),4))]])])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList")) 2 Public (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"EventOracle","Node") []])),"IOExts","readIORef")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList._#lambda24")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"EventOracle","Node") []) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList._#lambda24")) 2 Private (FuncType (TCons ((Nothing,Nothing,"IOExts","IORef")) [TCons ((Nothing,Nothing,"EventOracle","Node")) []]) (FuncType (TCons ((Nothing,Nothing,"EventOracle","Node")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]]))) (Rule [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1),(Just (TCons (Nothing,Nothing,"EventOracle","Node") []),2)] (Case  Rigid (Var ((Just (TCons (Nothing,Nothing,"EventOracle","Node") []),2))) [Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Collapsed")) []) (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","Int") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []]]),Branch (Pattern ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"EventOracle","Node") [])))),"EventOracle","Node")) [(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),3),(Just (TCons (Nothing,Nothing,"Prelude","Int") []),4),(Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (FuncType (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList")) [Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),5)),Var ((Just (TCons (Nothing,Nothing,"IOExts","IORef") [TCons (Nothing,Nothing,"EventOracle","Node") []]),1))],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","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList._#lambda24._#lambda26")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","Int") []),4))]]),Branch (Pattern ((Nothing,Just (TCons (Nothing,Nothing,"EventOracle","Node") []),"EventOracle","Marker")) []) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]])),"Prelude","return")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),"Prelude","[]")) []])])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]]))),"EventOracle","pointerToList._#lambda24._#lambda26")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","Int")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Int")) []]) (TCons ((Nothing,Nothing,"Prelude","IO")) [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)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]])),"Prelude","return")) [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)),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Int") []]),2))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"EventOracle","warning")) 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","()") []])),"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","++")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  ' '),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))]]))] []
+ src/lib/Curry/Module/.curry/EventOracle.fcy view
@@ -0,0 +1,1 @@+Prog "EventOracle" ["IOExts","Prelude","System","Unsafe"] [TypeSyn ("EventOracle","Ref") Public [] (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]),TypeSyn ("EventOracle","Cost") Public [] (TCons ("Prelude","Int") []),Type ("EventOracle","Node") Public [] [Cons ("EventOracle","Node") 3 Public [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []],TCons ("Prelude","Int") [],TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]],Cons ("EventOracle","Marker") 0 Public [],Cons ("EventOracle","Collapsed") 0 Public []]] [Func ("EventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("System","getProgName") [],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2") [Var 1]])),Func ("EventOracle","initialize._#lambda2") 2 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","++") [Var 2,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude","[]") []]]]]])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","setAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]],Var 3],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","writeFile") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3") [Var 1,Var 2]]]]))),Func ("EventOracle","initialize._#lambda2._#lambda3") 3 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'M'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'k'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4") [Var 1,Var 2,Var 3]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4") 4 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb ConsCall ("EventOracle","Node") [Var 3,Lit (Intc  0),Var 4]],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") [Var 1,Var 4,Var 2,Var 3]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5") 5 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","newIORef") [Comb ConsCall ("EventOracle","Marker") []],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6") [Var 1,Var 2,Var 5,Var 3,Var 4]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6") 6 Private (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 59])) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))))) (Rule [1,2,3,4,5,6] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 6,Lit (Intc  0),Var 3]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 3,Lit (Intc  0),Var 6]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Comb (FuncPartCall 1) ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7") [Var 2,Var 4,Var 5]]]])),Func ("EventOracle","initialize._#lambda2._#lambda3._#lambda4._#lambda5._#lambda6._#lambda7") 4 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 59) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 4],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","putStrLn") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'z'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'g'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("EventOracle","finalize") [Var 2,Var 3,Var 1],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","()") []]]]])),Func ("EventOracle","finalize") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("EventOracle","pointerToList") [Var 2,Var 3],Comb (FuncPartCall 1) ("EventOracle","finalize._#lambda8") [Var 1]])),Func ("EventOracle","finalize._#lambda8") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude",":") [3,4]) (Comb FuncCall ("Prelude","writeFile") [Comb FuncCall ("Prelude","++") [Var 1,Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude","[]") []]]]]]]],Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Var 4],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude",":") [Lit (Charc  '.'),Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Comb ConsCall ("Prelude","[]") []]]]]])])),Func ("EventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []])) (Rule [1] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("IOExts","newIORef") [Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude","[]") []]]]]]]]])),Func ("EventOracle","replace") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","replace._#lambda9") [Var 1,Var 2]]])),Func ("EventOracle","replace._#lambda9") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 76) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 76])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 1],Comb ConsCall ("EventOracle","Node") [Var 4,Comb FuncCall ("Prelude","+") [Var 5,Lit (Intc  1)],Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","collapse") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11") [Var 1,Var 2]]])),Func ("EventOracle","collapse._#lambda11") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 93) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 93])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11._#lambda13") [Var 5,Var 4,Var 1,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","collapse._#lambda11._#lambda13") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 5) [Branch (Pattern ("EventOracle","Node") [6,7,8]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","collapse._#lambda11._#lambda13._#lambda14") [Var 1,Var 2,Var 7,Var 6,Var 3,Var 4]])])),Func ("EventOracle","collapse._#lambda11._#lambda13._#lambda14") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("EventOracle","Node") [8,9,10]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Collapsed") []],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 4,Var 3,Var 6]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 6],Comb ConsCall ("EventOracle","Node") [Var 2,Comb FuncCall ("Prelude","+") [Comb FuncCall ("Prelude","+") [Var 1,Lit (Intc  1)],Var 9],Var 10]]]])])),Func ("EventOracle","closeRef") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [1,2] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15") [Var 1,Var 2]]])),Func ("EventOracle","closeRef._#lambda15") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 123) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 123])))) (Rule [1,2,3] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15._#lambda17") [Var 5,Var 4,Var 1,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 2]])),Func ("EventOracle","closeRef._#lambda15._#lambda17") 5 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))) (Rule [1,2,3,4,5] (Case  Flex (Var 5) [Branch (Pattern ("EventOracle","Node") [6,7,8]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 4],Comb (FuncPartCall 1) ("EventOracle","closeRef._#lambda15._#lambda17._#lambda18") [Var 1,Var 2,Var 7,Var 6,Var 3,Var 4]])])),Func ("EventOracle","closeRef._#lambda15._#lambda17._#lambda18") 7 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))))))) (Rule [1,2,3,4,5,6,7] (Case  Flex (Var 7) [Branch (Pattern ("EventOracle","Node") [8,9,10]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Collapsed") []],Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 4,Var 3,Var 6]],Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 1) ("IOExts","writeIORef") [Var 6],Comb ConsCall ("EventOracle","Node") [Var 2,Comb FuncCall ("Prelude","+") [Var 1,Var 9],Var 10]]]])])),Func ("EventOracle","expand") 3 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 0) (TVar 0)))) (Rule [1,2,3] (Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19") [Var 1,Var 2,Var 3]]])),Func ("EventOracle","expand._#lambda19") 4 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 175) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TVar 175]))))) (Rule [1,2,3,4] (Comb FuncCall ("Prelude",">>") [Case  Rigid (Var 4) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [5,6,7]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","$!!") [Comb (FuncPartCall 4) ("EventOracle","toAssocList") [],Comb FuncCall ("Prelude","+") [Var 6,Lit (Intc  1)]],Var 5],Comb ConsCall ("Prelude",":") [Var 1,Var 2]],Var 7],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19._#lambda21") [Var 7]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","failed") [])],Comb FuncCall ("Prelude","return") [Var 3]])),Func ("EventOracle","expand._#lambda19._#lambda21") 2 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","expand._#lambda19._#lambda21._#lambda22") [Var 2,Var 1]])),Func ("EventOracle","expand._#lambda19._#lambda21._#lambda22") 3 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [1,2,3] (Case  Rigid (Var 3) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'u'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'y'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]),Branch (Pattern ("EventOracle","Node") [4,5,6]) (Comb FuncCall ("IOExts","writeIORef") [Var 2,Comb ConsCall ("EventOracle","Node") [Var 1,Var 5,Var 6]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","done") [])])),Func ("EventOracle","toAssocList") 4 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]))))) (Rule [1,2,3,4] (Case  Flex (Var 3) [Branch (Pattern ("Prelude",":") [5,6]) (Case  Flex (Var 6) [Branch (Pattern ("Prelude","[]") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 2,Var 1,Var 4]],Comb FuncCall ("Prelude","return") [Var 5]]),Branch (Pattern ("Prelude",":") [7,8]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("IOExts","writeIORef") [Var 5,Comb ConsCall ("EventOracle","Node") [Var 2,Var 1,Var 7]],Comb FuncCall ("EventOracle","toAssocList") [Lit (Intc  0),Var 5,Var 6,Var 4]])])])),Func ("EventOracle","pointerToList") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","readIORef") [Var 1],Comb (FuncPartCall 1) ("EventOracle","pointerToList._#lambda24") [Var 2]])),Func ("EventOracle","pointerToList._#lambda24") 2 Private (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("EventOracle","Node") []) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Case  Rigid (Var 2) [Branch (Pattern ("EventOracle","Collapsed") []) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("EventOracle","warning") [Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'i'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'p'),Comb ConsCall ("Prelude",":") [Lit (Charc  's'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude",":") [Lit (Charc  'c'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]],Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []]]),Branch (Pattern ("EventOracle","Node") [3,4,5]) (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("EventOracle","pointerToList") [Var 5,Var 1],Comb (FuncPartCall 1) ("EventOracle","pointerToList._#lambda24._#lambda26") [Var 4]]),Branch (Pattern ("EventOracle","Marker") []) (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude","[]") []])])),Func ("EventOracle","pointerToList._#lambda24._#lambda26") 2 Private (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Int") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [1,2] (Comb FuncCall ("Prelude","return") [Comb ConsCall ("Prelude",":") [Var 1,Var 2]])),Func ("EventOracle","warning") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("Prelude","$") [Comb (FuncPartCall 1) ("Prelude","putStrLn") [],Comb FuncCall ("Prelude","++") [Comb ConsCall ("Prelude",":") [Lit (Charc  'W'),Comb ConsCall ("Prelude",":") [Lit (Charc  'A'),Comb ConsCall ("Prelude",":") [Lit (Charc  'R'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'G'),Comb ConsCall ("Prelude",":") [Lit (Charc  ':'),Comb ConsCall ("Prelude",":") [Lit (Charc  ' '),Comb ConsCall ("Prelude","[]") []]]]]]]]]],Var 1]]))] []
+ src/lib/Curry/Module/.curry/EventOracle.fint view
@@ -0,0 +1,1 @@+Prog "EventOracle" ["IOExts","Prelude","System","Unsafe"] [TypeSyn ("EventOracle","Ref") Public [] (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]),TypeSyn ("EventOracle","Cost") Public [] (TCons ("Prelude","Int") []),Type ("EventOracle","Node") Public [] [Cons ("EventOracle","Node") 3 Public [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []],TCons ("Prelude","Int") [],TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]],Cons ("EventOracle","Marker") 0 Public [],Cons ("EventOracle","Collapsed") 0 Public []]] [Func ("EventOracle","initialize") 1 Public (FuncType (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TVar 0])) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("EventOracle","finalize") 3 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])))) (Rule [] (Var 0)),Func ("EventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []])) (Rule [] (Var 0)),Func ("EventOracle","replace") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","collapse") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","closeRef") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("EventOracle","expand") 3 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("EventOracle","toAssocList") 4 Public (FuncType (TCons ("Prelude","Int") []) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("Prelude","[]") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]]))))) (Rule [] (Var 0)),Func ("EventOracle","pointerToList") 2 Public (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (FuncType (TCons ("IOExts","IORef") [TCons ("EventOracle","Node") []]) (TCons ("Prelude","IO") [TCons ("Prelude","[]") [TCons ("Prelude","Int") []]]))) (Rule [] (Var 0)),Func ("EventOracle","warning") 1 Public (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0))] []
+ src/lib/Curry/Module/.curry/EventOracle.uacy view
@@ -0,0 +1,16 @@+CurryProg "EventOracle"+ ["Prelude","IOExts","Unsafe","System"]+ [CTypeSyn ("EventOracle","Ref") Public [] (CTCons ("IOExts","IORef") [CTCons ("EventOracle","Node") []]),+  CType ("EventOracle","Node") Public [] [CCons ("EventOracle","Node") 3 Public [CTCons ("EventOracle","Ref") [],CTCons ("EventOracle","Cost") [],CTCons ("EventOracle","Ref") []],CCons ("EventOracle","Marker") 0 Public [],CCons ("EventOracle","Collapsed") 0 Public []],+  CTypeSyn ("EventOracle","Cost") Public [] (CTCons ("Prelude","Int") [])]+ [CFunc ("EventOracle","closeRef") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","collapse") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPComb ("EventOracle","Node") [CPVar (6,"pp"),CPVar (7,"pc"),CPVar (8,"_")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (3,"p"))),CSPat (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CSymbol ("IOExts","readIORef")) (CVar (5,"s"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref"))) (CSymbol ("EventOracle","Collapsed"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"p"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"pp"))) (CVar (7,"pc"))) (CVar (5,"s")))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (5,"s")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (10,"sc")))) (CVar (11,"ss"))))])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","expand") 3 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EventOracle","Ref") []]) (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"refs"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (3,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (3,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]")))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (4,"p"),CPVar (5,"c"),CPVar (6,"s")]) (CDoExpr [CSPat (CPVar (7,"last")) (CApply (CApply (CApply (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("EventOracle","toAssocList"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (5,"c"))) (CLit (CIntc 1)))) (CVar (4,"p"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (0,"ref"))) (CVar (1,"refs")))) (CVar (6,"s"))),CSPat (CPVar (8,"suc")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (6,"s"))),CSExpr (CCase (CVar (8,"suc")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (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 'f'))) (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 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'y'))) (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 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (9,"_"),CPVar (10,"sc"),CPVar (11,"ss")]) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"s"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (7,"last"))) (CVar (10,"sc"))) (CVar (11,"ss")))),CBranch (CPComb ("EventOracle","Marker") []) (CSymbol ("Prelude","done"))])])]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))]))] []]),+  CFunc ("EventOracle","finalize") 3 Public (CFuncType (CTCons ("Prelude","String") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])))) (CRules CFlex [CRule [CPVar (0,"mod"),CPVar (1,"fmR"),CPVar (2,"endR")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude",":") [CPVar (3,"_"),CPVar (4,"l")]) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (1,"fmR"))) (CVar (2,"endR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (0,"mod"))) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CSymbol ("Prelude","[]")))))))))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CVar (4,"l")))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '.'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CSymbol ("Prelude","[]")))))))])] []]),+  CFunc ("EventOracle","fresh") 1 Public (CFuncType (CTCons ("Prelude","()") []) (CTCons ("EventOracle","Ref") [])) (CRules CFlex [CRule [CPVar (0,"_")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (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 'h'))) (CSymbol ("Prelude","[]"))))))))))] []]),+  CFunc ("EventOracle","initialize") 1 Public (CFuncType (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (1,"mod")) (CSymbol ("System","getProgName")),CSLet [CLocalPat (CPVar (2,"extFile")) (CApply (CApply (CSymbol ("Prelude","++")) (CVar (1,"mod"))) (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 't'))) (CSymbol ("Prelude","[]"))))))) []],CSExpr (CApply (CApply (CSymbol ("IOExts","setAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))) (CVar (2,"extFile"))),CSExpr (CApply (CApply (CSymbol ("Prelude","writeFile")) (CVar (2,"extFile"))) (CSymbol ("Prelude","[]"))),CSPat (CPVar (3,"startMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 's'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (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 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))))),CSPat (CPVar (4,"endMarker")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CSymbol ("Prelude","error")) (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 'M'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'k'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CSymbol ("Prelude","[]"))))))))))))),CSPat (CPVar (5,"mainR")) (CApply (CSymbol ("IOExts","newIORef")) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"startMarker"))) (CLit (CIntc 0))) (CVar (4,"endMarker")))),CSPat (CPVar (6,"marker")) (CApply (CSymbol ("IOExts","newIORef")) (CSymbol ("EventOracle","Marker"))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (3,"startMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (6,"marker"))) (CLit (CIntc 0))) (CVar (5,"mainR")))),CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (4,"endMarker"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"mainR"))) (CLit (CIntc 0))) (CVar (6,"marker")))),CSPat (CPVar (7,"x")) (CApply (CVar (0,"app")) (CVar (5,"mainR"))),CSExpr (CApply (CApply (CSymbol ("Prelude","$!!")) (CSymbol ("Prelude","return"))) (CVar (7,"x"))),CSExpr (CApply (CSymbol ("Prelude","putStrLn")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (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 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'g'))) (CSymbol ("Prelude","[]"))))))))))))),CSExpr (CApply (CApply (CApply (CSymbol ("EventOracle","finalize")) (CVar (1,"mod"))) (CVar (3,"startMarker"))) (CVar (4,"endMarker"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","()")))])] []]),+  CFunc ("EventOracle","pointerToList") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","[]") [CTCons ("EventOracle","Cost") []]]))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"end")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("EventOracle","warning")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'i'))) (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 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))))))))))))) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"_"),CPVar (4,"c"),CPVar (5,"s")]) (CDoExpr [CSPat (CPVar (6,"cs")) (CApply (CApply (CSymbol ("EventOracle","pointerToList")) (CVar (5,"s"))) (CVar (1,"end"))),CSExpr (CApply (CSymbol ("Prelude","return")) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"c"))) (CVar (6,"cs"))))]),CBranch (CPComb ("EventOracle","Marker") []) (CApply (CSymbol ("Prelude","return")) (CSymbol ("Prelude","[]")))])])] []]),+  CFunc ("EventOracle","replace") 2 Public (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"ref"),CPVar (1,"x")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Unsafe","unsafePerformIO")) (CDoExpr [CSPat (CPVar (2,"node")) (CApply (CSymbol ("IOExts","readIORef")) (CVar (0,"ref"))),CSExpr (CCase (CVar (2,"node")) [CBranch (CPComb ("EventOracle","Collapsed") []) (CApply (CSymbol ("EventOracle","warning")) (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 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'd'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc ' '))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'c'))) (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 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'p'))) (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 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CSymbol ("Prelude","[]"))))))))))))))))))))))))))))))))),CBranch (CPComb ("EventOracle","Node") [CPVar (3,"p"),CPVar (4,"c"),CPVar (5,"s")]) (CApply (CApply (CSymbol ("Prelude","$!!")) (CApply (CSymbol ("IOExts","writeIORef")) (CVar (0,"ref")))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (3,"p"))) (CApply (CApply (CSymbol ("Prelude","+")) (CVar (4,"c"))) (CLit (CIntc 1)))) (CVar (5,"s"))))]),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (1,"x")))]))] []]),+  CFunc ("EventOracle","toAssocList") 4 Public (CFuncType (CTCons ("EventOracle","Cost") []) (CFuncType (CTCons ("EventOracle","Ref") []) (CFuncType (CTCons ("Prelude","[]") [CTCons ("EventOracle","Ref") []]) (CFuncType (CTCons ("EventOracle","Ref") []) (CTCons ("Prelude","IO") [CTCons ("EventOracle","Ref") []]))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"p"),CPComb ("Prelude",":") [CPVar (2,"r"),CPComb ("Prelude","[]") []],CPVar (3,"s")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (2,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (1,"p"))) (CVar (0,"c"))) (CVar (3,"s"))))) (CApply (CSymbol ("Prelude","return")) (CVar (2,"r"))))] [],CRule [CPVar (4,"c"),CPVar (5,"p"),CPComb ("Prelude",":") [CPVar (6,"r"),CPAs (9,"rs") (CPComb ("Prelude",":") [CPVar (7,"r'"),CPVar (8,"_")])],CPVar (10,"s")] [(CSymbol ("Prelude","success"),CDoExpr [CSExpr (CApply (CApply (CSymbol ("IOExts","writeIORef")) (CVar (6,"r"))) (CApply (CApply (CApply (CSymbol ("EventOracle","Node")) (CVar (5,"p"))) (CVar (4,"c"))) (CVar (7,"r'")))),CSExpr (CApply (CApply (CApply (CApply (CSymbol ("EventOracle","toAssocList")) (CLit (CIntc 0))) (CVar (6,"r"))) (CVar (9,"rs"))) (CVar (10,"s")))])] []]),+  CFunc ("EventOracle","warning") 1 Public (CFuncType (CTCons ("Prelude","String") []) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"msg")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("Prelude","$")) (CSymbol ("Prelude","putStrLn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'W'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'A'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'R'))) (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 ' '))) (CSymbol ("Prelude","[]")))))))))))) (CVar (0,"msg"))))] []])]+ []
+ src/lib/Curry/Module/.curry/Oracle.acy view
@@ -0,0 +1,25 @@+CurryProg "Oracle"+ ["Prelude","IOExts","CEventOracle","Meta","Unsafe"]+ []+ [CFunc ("Oracle","$!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$!!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$#") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$#")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$##") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$##")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle",">>=") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","bind")) (CVar (0,"act"))) (CVar (1,"cont")))))] []]),+  CFunc ("Oracle","apply") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","apply")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","bind") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref2")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref2"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CApply (CSymbol ("Oracle","bind2")) (CVar (1,"cont"))) (CVar (2,"world"))) (CVar (4,"ref2"))))))] []]),+  CFunc ("Oracle","bind2") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"cont"),CPVar (1,"world"),CPVar (2,"ref2"),CPVar (3,"x")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref3")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (2,"ref2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref3"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"cont"))) (CVar (3,"x"))) (CVar (2,"ref2")))) (CVar (1,"world"))) (CVar (4,"ref3")))))] []]),+  CFunc ("Oracle","catch") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref'")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref'"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act1"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","True")))))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (1,"act2"))) (CVar (2,"world"))) (CVar (4,"ref'")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","False"))))))) (CLambda [CPComb ("Prelude","(,)") [CPVar (5,"b"),CPVar (6,"res")]] (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Oracle","safeIOResult")) (CApply (CSymbol ("Prelude","return")) (CVar (5,"b"))))) (CApply (CSymbol ("Prelude","return")) (CVar (6,"res"))))))))] []]),+  CFunc ("Oracle","catchFail") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","catch")) (CVar (0,"act1"))) (CVar (1,"act2")))))] []]),+  CFunc ("Oracle","compose") 3 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"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CApply (CVar (1,"g")) (CVar (2,"x"))))] []]),+  CFunc ("Oracle","headNormalFormIO") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (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 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CSymbol ("Prelude","[]")))))))))))))))))))] []]),+  CFunc ("Oracle","lambda_world") 3 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (1,"ref"))) (CVar (0,"act")))] []]),+  CFunc ("Oracle","oracle") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"expr")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CVar (0,"expr"))))] []]),+  CFunc ("Oracle","oracleIO") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CLambda [CPVar (1,"mainR")] (CLetDecl [CLocalPat (CPVar (2,"appRef")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (1,"mainR"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"appRef"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CVar (0,"app")) (CVar (1,"mainR"))) (CVar (2,"appRef"))) (CSymbol ("Prelude","()")))))))] []]),+  CFunc ("Oracle","partCall") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CVar (0,"x")))] []]),+  CFunc ("Oracle","partCons") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CApply (CVar (0,"c")) (CVar (2,"x"))))] []]),+  CFunc ("Oracle","partFunc") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b")))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (2,"x"))) (CVar (1,"r")))] []]),+  CFunc ("Oracle","prim_unsafePerformIO") 2 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","replace")) (CVar (1,"ref"))) (CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CVar (0,"act")) (CVar (1,"ref"))) (CSymbol ("Prelude","()")))))] []]),+  CFunc ("Oracle","safeIOResult") 1 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude","Just") [CPVar (1,"fn")]) (CApply (CSymbol ("IOExts","getAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))),CSPat (CPVar (2,"x")) (CVar (0,"act")),CSLet [CLocalPat (CPVar (3,"sx")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"x"))) []],CSExpr (CApply (CApply (CSymbol ("Prelude","appendFile")) (CVar (1,"fn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CApply (CSymbol ("Prelude","length")) (CVar (3,"sx"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CVar (3,"sx"))))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))])] []]),+  CFunc ("Oracle","unknown") 1 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","unknown")) (CVar (0,"r")))] []])]+ [COp ("Oracle","$##") CInfixrOp 0,COp ("Oracle","$#") CInfixrOp 0,COp ("Oracle","$!!") CInfixrOp 0,COp ("Oracle","$!") CInfixrOp 0]
+ src/lib/Curry/Module/.curry/Oracle.cy view
@@ -0,0 +1,51 @@+Module "Oracle"+(Just (Exporting (5,15) [(Export (QualIdent Nothing (Ident "Ref" 0))),(Export (QualIdent Nothing (Ident "partCons" 0))),(Export (QualIdent Nothing (Ident "partFunc" 0))),(Export (QualIdent Nothing (Ident "partCall" 0))),(Export (QualIdent Nothing (Ident "apply" 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 "unknown" 0))),(Export (QualIdent Nothing (Ident "oracle" 0))),(Export (QualIdent Nothing (Ident "oracleIO" 0))),(Export (QualIdent Nothing (Ident "fresh" 0))),(Export (QualIdent Nothing (Ident "replace" 0))),(Export (QualIdent Nothing (Ident "collapse" 0))),(Export (QualIdent Nothing (Ident "closeRef" 0))),(Export (QualIdent Nothing (Ident "expand" 0)))]))+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)+,(ImportDecl (18,1) "IOExts" False Nothing (Just (Importing (18,15) [(Import (Ident "getAssoc" 0))])))+,(ImportDecl (19,1) "CEventOracle" False Nothing Nothing)+,(ImportDecl (20,1) "Meta" True Nothing Nothing)+,(ImportDecl (21,1) "Unsafe" True Nothing (Just (Importing (21,25) [(Import (Ident "unsafePerformIO" 0))])))+,(InfixDecl (27,1) InfixR 0 [(Ident "$!" 0),(Ident "$!!" 0),(Ident "$#" 0),(Ident "$##" 0)])+,(TypeSig (32,1) [(Ident "partCons" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))))))+,(FunctionDecl (33,1) (Ident "partCons" 0) [(Equation (33,1) (FunLhs (Ident "partCons" 0) [(VariablePattern (Ident "c" 2)),(VariablePattern (Ident "r" 2)),(VariablePattern (Ident "x" 2))]) (SimpleRhs (33,18) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "closeRef" 0))) (Variable (QualIdent Nothing (Ident "r" 2)))) (Paren (Apply (Variable (QualIdent Nothing (Ident "c" 2))) (Variable (QualIdent Nothing (Ident "x" 2)))))) []))])+,(TypeSig (39,1) [(Ident "partFunc" 0)] (ArrowType (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0)))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0))))))+,(FunctionDecl (40,1) (Ident "partFunc" 0) [(Equation (40,1) (FunLhs (Ident "partFunc" 0) [(VariablePattern (Ident "f" 4)),(VariablePattern (Ident "r" 4)),(VariablePattern (Ident "x" 4))]) (SimpleRhs (40,18) (Apply (Apply (Variable (QualIdent Nothing (Ident "f" 4))) (Variable (QualIdent Nothing (Ident "x" 4)))) (Variable (QualIdent Nothing (Ident "r" 4)))) []))])+,(TypeSig (43,1) [(Ident "partCall" 0)] (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0)))))+,(FunctionDecl (44,1) (Ident "partCall" 0) [(Equation (44,1) (FunLhs (Ident "partCall" 0) [(VariablePattern (Ident "x" 6)),(VariablePattern (Ident "r" 6))]) (SimpleRhs (44,16) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "closeRef" 0))) (Variable (QualIdent Nothing (Ident "r" 6)))) (Variable (QualIdent Nothing (Ident "x" 6)))) []))])+,(TypeSig (47,1) [(Ident "apply" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FunctionDecl (48,1) (Ident "apply" 0) [(Equation (48,1) (FunLhs (Ident "apply" 0) [(VariablePattern (Ident "f" 8)),(VariablePattern (Ident "x" 8)),(VariablePattern (Ident "r" 8))]) (SimpleRhs (48,15) (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "f" 8)))) (Variable (QualIdent Nothing (Ident "x" 8)))) (Variable (QualIdent Nothing (Ident "r" 8)))) []))])+,(TypeSig (51,1) [(Ident "$!" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FunctionDecl (52,1) (Ident "$!" 0) [(Equation (52,1) (ApLhs (OpLhs (VariablePattern (Ident "f" 10)) (Ident "$!" 0) (VariablePattern (Ident "x" 10))) [(VariablePattern (Ident "r" 10))]) (SimpleRhs (52,14) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 10))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$!" 0))) (Variable (QualIdent Nothing (Ident "x" 10))))) (Variable (QualIdent Nothing (Ident "r" 10)))) []))])+,(TypeSig (55,1) [(Ident "$!!" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FunctionDecl (56,1) (Ident "$!!" 0) [(Equation (56,1) (FunLhs (Ident "$!!" 0) [(VariablePattern (Ident "f" 12)),(VariablePattern (Ident "x" 12)),(VariablePattern (Ident "r" 12))]) (SimpleRhs (56,15) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 12))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$!!" 0))) (Variable (QualIdent Nothing (Ident "x" 12))))) (Variable (QualIdent Nothing (Ident "r" 12)))) []))])+,(TypeSig (59,1) [(Ident "$#" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FunctionDecl (60,1) (Ident "$#" 0) [(Equation (60,1) (FunLhs (Ident "$#" 0) [(VariablePattern (Ident "f" 14)),(VariablePattern (Ident "x" 14)),(VariablePattern (Ident "r" 14))]) (SimpleRhs (60,14) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 14))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$#" 0))) (Variable (QualIdent Nothing (Ident "x" 14))))) (Variable (QualIdent Nothing (Ident "r" 14)))) []))])+,(TypeSig (63,1) [(Ident "$##" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (VariableType (Ident "b" 0)))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "b" 0))))))+,(FunctionDecl (64,1) (Ident "$##" 0) [(Equation (64,1) (FunLhs (Ident "$##" 0) [(VariablePattern (Ident "f" 16)),(VariablePattern (Ident "x" 16)),(VariablePattern (Ident "r" 16))]) (SimpleRhs (64,15) (Apply (Paren (InfixApply (Variable (QualIdent Nothing (Ident "f" 16))) (InfixOp (QualIdent (Just "CEventOracle") (Ident "$##" 0))) (Variable (QualIdent Nothing (Ident "x" 16))))) (Variable (QualIdent Nothing (Ident "r" 16)))) []))])+,(TypeSig (66,1) [(Ident "headNormalFormIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])))))))+,(FunctionDecl (67,1) (Ident "headNormalFormIO" 0) [(Equation (67,1) (FunLhs (Ident "headNormalFormIO" 0) [(VariablePattern (Ident "f" 18)),(VariablePattern (Ident "x" 18)),(VariablePattern (Ident "r" 18))]) (SimpleRhs (67,26) (Apply (Variable (QualIdent (Just "Prelude") (Ident "error" 0))) (Literal (String "headNormalFormIO"))) []))])+,(TypeSig (69,1) [(Ident "prim_unsafePerformIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0)))))+,(FunctionDecl (70,1) (Ident "prim_unsafePerformIO" 0) [(Equation (70,1) (FunLhs (Ident "prim_unsafePerformIO" 0) [(VariablePattern (Ident "act" 20)),(VariablePattern (Ident "ref" 20))]) (SimpleRhs (70,32) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "replace" 0))) (Variable (QualIdent Nothing (Ident "ref" 20)))) (Paren (Apply (Variable (QualIdent (Just "Unsafe") (Ident "unsafePerformIO" 0))) (Paren (Apply (Apply (Variable (QualIdent Nothing (Ident "act" 20))) (Variable (QualIdent Nothing (Ident "ref" 20)))) (Tuple [])))))) []))])+,(TypeSig (73,1) [(Ident "lambda_world" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))+,(FunctionDecl (74,1) (Ident "lambda_world" 0) [(Equation (74,1) (FunLhs (Ident "lambda_world" 0) [(VariablePattern (Ident "act" 22)),(VariablePattern (Ident "ref" 22)),(VariablePattern (Ident "_" 23))]) (SimpleRhs (74,26) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 22)))) (Variable (QualIdent Nothing (Ident "act" 22)))) []))])+,(TypeSig (77,1) [(Ident ">>=" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))])))))))+,(FunctionDecl (78,1) (Ident ">>=" 0) [(Equation (78,1) (FunLhs (Ident ">>=" 0) [(VariablePattern (Ident "act" 25)),(VariablePattern (Ident "cont" 25)),(VariablePattern (Ident "ref" 25))]) (SimpleRhs (78,22) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 25)))) (Paren (Apply (Variable (QualIdent (Just "Oracle") (Ident "partFunc" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "bind" 0))) (Variable (QualIdent Nothing (Ident "act" 25)))) (Variable (QualIdent Nothing (Ident "cont" 25)))))))) []))])+,(TypeSig (80,1) [(Ident "bind" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))))+,(FunctionDecl (81,1) (Ident "bind" 0) [(Equation (81,1) (FunLhs (Ident "bind" 0) [(VariablePattern (Ident "act" 27)),(VariablePattern (Ident "cont" 27)),(VariablePattern (Ident "world" 27)),(VariablePattern (Ident "ref" 27))]) (SimpleRhs (82,3) (Let [(PatternDecl (82,7) (VariablePattern (Ident "ref2" 29)) (SimpleRhs (82,14) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref" 27)))) (List [(Variable (QualIdent Nothing (Ident "ref2" 29)))])) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act" 27)))) (Variable (QualIdent Nothing (Ident "world" 27)))) (Variable (QualIdent Nothing (Ident "ref" 27)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "bind2" 0))) (Variable (QualIdent Nothing (Ident "cont" 27)))) (Variable (QualIdent Nothing (Ident "world" 27)))) (Variable (QualIdent Nothing (Ident "ref2" 29)))))))) []))])+,(TypeSig (85,1) [(Ident "bind2" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (VariableType (Ident "a" 0)) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "b" 0))]))))))+,(FunctionDecl (86,1) (Ident "bind2" 0) [(Equation (86,1) (FunLhs (Ident "bind2" 0) [(VariablePattern (Ident "cont" 31)),(VariablePattern (Ident "world" 31)),(VariablePattern (Ident "ref2" 31)),(VariablePattern (Ident "x" 31))]) (SimpleRhs (87,7) (Let [(PatternDecl (87,11) (VariablePattern (Ident "ref3" 33)) (SimpleRhs (87,18) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref2" 31)))) (List [(Variable (QualIdent Nothing (Ident "ref3" 33)))])) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Paren (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "cont" 31)))) (Variable (QualIdent Nothing (Ident "x" 31)))) (Variable (QualIdent Nothing (Ident "ref2" 31)))))) (Variable (QualIdent Nothing (Ident "world" 31)))) (Variable (QualIdent Nothing (Ident "ref3" 33))))))) []))])+,(TypeSig (91,1) [(Ident "catchFail" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))))))+,(FunctionDecl (92,1) (Ident "catchFail" 0) [(Equation (92,1) (FunLhs (Ident "catchFail" 0) [(VariablePattern (Ident "act1" 35)),(VariablePattern (Ident "act2" 35)),(VariablePattern (Ident "ref" 35))]) (SimpleRhs (93,3) (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "collapse" 0))) (Variable (QualIdent Nothing (Ident "ref" 35)))) (Paren (Apply (Variable (QualIdent (Just "Oracle") (Ident "partFunc" 0))) (Paren (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "catch" 0))) (Variable (QualIdent Nothing (Ident "act1" 35)))) (Variable (QualIdent Nothing (Ident "act2" 35)))))))) []))])+,(TypeSig (95,1) [(Ident "catch" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))) (ArrowType (TupleType []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]))))))+,(FunctionDecl (96,1) (Ident "catch" 0) [(Equation (96,1) (FunLhs (Ident "catch" 0) [(VariablePattern (Ident "act1" 37)),(VariablePattern (Ident "act2" 37)),(VariablePattern (Ident "world" 37)),(VariablePattern (Ident "ref" 37))]) (SimpleRhs (96,29) (Let [(PatternDecl (96,33) (VariablePattern (Ident "ref'" 39)) (SimpleRhs (96,40) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "ref" 37)))) (List [(Variable (QualIdent Nothing (Ident "ref'" 39)))])) (Paren (InfixApply (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "catchFail" 0))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act1" 37)))) (Variable (QualIdent Nothing (Ident "world" 37)))) (Variable (QualIdent Nothing (Ident "ref" 37)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "(,)" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "True" 0)))))))) (Paren (InfixApply (Apply (Apply (Apply (Variable (QualIdent (Just "Oracle") (Ident "apply" 0))) (Variable (QualIdent Nothing (Ident "act2" 37)))) (Variable (QualIdent Nothing (Ident "world" 37)))) (Variable (QualIdent Nothing (Ident "ref'" 39)))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Apply (Constructor (QualIdent (Just "Prelude") (Ident "(,)" 0))) (Constructor (QualIdent (Just "Prelude") (Ident "False" 0)))))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>=" 0))) (Lambda [(TuplePattern [(VariablePattern (Ident "b" 41)),(VariablePattern (Ident "res" 41))])] (InfixApply (Apply (Variable (QualIdent (Just "Oracle") (Ident "safeIOResult" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "b" 41)))))) (InfixOp (QualIdent (Just "Prelude") (Ident ">>" 0))) (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "res" 41)))))))))) []))])+,(TypeSig (105,1) [(Ident "compose" 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 (106,1) (Ident "compose" 0) [(Equation (106,1) (FunLhs (Ident "compose" 0) [(VariablePattern (Ident "f" 42)),(VariablePattern (Ident "g" 42)),(VariablePattern (Ident "x" 42))]) (SimpleRhs (106,17) (Apply (Variable (QualIdent Nothing (Ident "f" 42))) (Paren (Apply (Variable (QualIdent Nothing (Ident "g" 42))) (Variable (QualIdent Nothing (Ident "x" 42)))))) []))])+,(TypeSig (109,1) [(Ident "oracle" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FunctionDecl (110,1) (Ident "oracle" 0) [(Equation (110,1) (FunLhs (Ident "oracle" 0) [(VariablePattern (Ident "expr" 44))]) (SimpleRhs (110,15) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "initialize" 0))) (Paren (InfixApply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (InfixOp (QualIdent (Just "Prelude") (Ident "." 0))) (Variable (QualIdent Nothing (Ident "expr" 44)))))) []))])+,(TypeSig (112,1) [(Ident "oracleIO" 0)] (ArrowType (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (ArrowType (TupleType []) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(TupleType [])])))+,(FunctionDecl (113,1) (Ident "oracleIO" 0) [(Equation (113,1) (FunLhs (Ident "oracleIO" 0) [(VariablePattern (Ident "app" 46))]) (SimpleRhs (113,16) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "initialize" 0))) (Paren (Lambda [(VariablePattern (Ident "mainR" 48))] (Let [(PatternDecl (114,7) (VariablePattern (Ident "appRef" 49)) (SimpleRhs (114,16) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "fresh" 0))) (Tuple [])) []))] (Apply (Apply (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "expand" 0))) (Variable (QualIdent Nothing (Ident "mainR" 48)))) (List [(Variable (QualIdent Nothing (Ident "appRef" 49)))])) (Paren (Apply (Apply (Apply (Variable (QualIdent Nothing (Ident "app" 46))) (Variable (QualIdent Nothing (Ident "mainR" 48)))) (Variable (QualIdent Nothing (Ident "appRef" 49)))) (Tuple [])))))))) []))])+,(TypeSig (118,1) [(Ident "safeIOResult" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))]) (ConstructorType (QualIdent Nothing (Ident "IO" 0)) [(VariableType (Ident "a" 0))])))+,(FunctionDecl (119,1) (Ident "safeIOResult" 0) [(Equation (119,1) (FunLhs (Ident "safeIOResult" 0) [(VariablePattern (Ident "act" 51))]) (SimpleRhs (119,20) (Do [(StmtBind (ConstructorPattern (QualIdent (Just "Prelude") (Ident "Just" 0)) [(VariablePattern (Ident "fn" 53))]) (Apply (Variable (QualIdent (Just "IOExts") (Ident "getAssoc" 0))) (Literal (String "extfn")))),(StmtBind (VariablePattern (Ident "x" 54)) (Variable (QualIdent Nothing (Ident "act" 51)))),(StmtDecl [(PatternDecl (122,7) (VariablePattern (Ident "sx" 55)) (SimpleRhs (122,12) (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Variable (QualIdent Nothing (Ident "x" 54)))) []))]),(StmtExpr (Apply (Apply (Variable (QualIdent (Just "Prelude") (Ident "appendFile" 0))) (Variable (QualIdent Nothing (Ident "fn" 53)))) (Paren (InfixApply (Apply (Variable (QualIdent (Just "Prelude") (Ident "show" 0))) (Paren (Apply (Variable (QualIdent (Just "Prelude") (Ident "length" 0))) (Variable (QualIdent Nothing (Ident "sx" 55)))))) (InfixOp (QualIdent (Just "Prelude") (Ident "++" 0))) (InfixApply (Literal (Char '\n')) (InfixConstr (QualIdent Nothing (Ident ":" 0))) (Variable (QualIdent Nothing (Ident "sx" 55))))))))] (Apply (Variable (QualIdent (Just "Prelude") (Ident "return" 0))) (Variable (QualIdent Nothing (Ident "x" 54))))) []))])+,(TypeSig (127,1) [(Ident "unknown" 0)] (ArrowType (ConstructorType (QualIdent Nothing (Ident "Ref" 0)) []) (VariableType (Ident "a" 0))))+,(FunctionDecl (128,1) (Ident "unknown" 0) [(Equation (128,1) (FunLhs (Ident "unknown" 0) [(VariablePattern (Ident "r" 57))]) (SimpleRhs (128,13) (Apply (Variable (QualIdent (Just "CEventOracle") (Ident "unknown" 0))) (Variable (QualIdent Nothing (Ident "r" 57)))) []))])+]
+ src/lib/Curry/Module/.curry/Oracle.efc view
@@ -0,0 +1,1 @@+Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [] [Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))),"Oracle","partCons")) 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (TVar 1)),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 1) (TVar 1))),"CEventOracle","closeRef")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),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),3))]])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))),"Oracle","partFunc")) 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1))) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1)))) (Rule [(Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1))),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2),(Just (TVar 0),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Prelude","apply")) [Var ((Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1))),1)),Var ((Just (TVar 0),3))],Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2))])),Func ((Nothing,Just (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0))),"Oracle","partCall")) 2 Public (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 0))) (Rule [(Just (TVar 0),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))),"CEventOracle","closeRef")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)),Var ((Just (TVar 0),1))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","apply")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$!")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$!")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$!!")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$!!")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$#")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$#")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$##")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 1)))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"CEventOracle","$##")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))),1)),Var ((Just (TVar 0),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))))),"Oracle","headNormalFormIO")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),1),(Just (TVar 0),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [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  '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  '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  '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  '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  '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  '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  '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  '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 (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]]]]]]]]]]]]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0))),"Oracle","prim_unsafePerformIO")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 0))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))),"CEventOracle","replace")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TVar 0)),"Unsafe","unsafePerformIO")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","()") []),"Prelude","()")) []]]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Oracle","lambda_world")) 3 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2),(Just (TCons (Nothing,Nothing,"Prelude","()") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"CEventOracle","collapse")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1))])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))))),"Oracle",">>=")) 3 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1),(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),"CEventOracle","collapse")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"Oracle","partFunc")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),"Oracle","bind")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),2))]]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),"Oracle","bind")) 4 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1),(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),2),(Just (TCons (Nothing,Nothing,"Prelude","()") []),3),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4)] (Let [((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"CEventOracle","Ref") [])),"CEventOracle","fresh")) [Comb ConsCall ((Nothing,Just (TVar 4),"Prelude","()")) []])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"CEventOracle","expand")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]),"Prelude","[]")) []],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",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Oracle","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","()") []),3)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4))],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),"Oracle","bind2")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","()") []),3)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5))]]]))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),"Oracle","bind2")) 4 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TVar 0) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 1]))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),1),(Just (TCons (Nothing,Nothing,"Prelude","()") []),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3),(Just (TVar 0),4)] (Let [((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"CEventOracle","Ref") [])),"CEventOracle","fresh")) [Comb ConsCall ((Nothing,Just (TVar 4),"Prelude","()")) []])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"CEventOracle","expand")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))),"Oracle","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1])))))),"Oracle","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 1]))))),1)),Var ((Just (TVar 0),4)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))],Var ((Just (TCons (Nothing,Nothing,"Prelude","()") []),2)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5))]]))),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))))),"Oracle","catchFail")) 3 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1),(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),2),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"CEventOracle","collapse")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)),Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Oracle","partFunc")) [Comb (FuncPartCall 2) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Oracle","catch")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1)),Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),2))]]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))))),"Oracle","catch")) 4 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]))))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1),(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),2),(Just (TCons (Nothing,Nothing,"Prelude","()") []),3),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4)] (Let [((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"CEventOracle","Ref") [])),"CEventOracle","fresh")) [Comb ConsCall ((Nothing,Just (TVar 165),"Prelude","()")) []])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"CEventOracle","expand")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]]) (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],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") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Oracle","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),1)),Var ((Just (TCons (Nothing,Nothing,"Prelude","()") []),3)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),4))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])),"Prelude","return")) [],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","True")) []]]],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","Bool") [],TVar 0]])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]]))),"Prelude",">>=")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),"Oracle","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),2)),Var ((Just (TCons (Nothing,Nothing,"Prelude","()") []),3)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),5))],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])) (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0])) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])))),"Prelude",".")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]])),"Prelude","return")) [],Comb (ConsPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Bool") []) (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]))),"Prelude","(,)")) [Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","Bool") []),"Prelude","False")) []]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Oracle","catch._#lambda2")) []]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 162]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 162])),"Oracle","catch._#lambda2")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","(,)")) [TCons ((Nothing,Nothing,"Prelude","Bool")) [],TVar 162]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 162])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 162]),1)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 162]),1))) [Branch (Pattern ((Nothing,Just (FuncType (TVar 164) (FuncType (TVar 162) (TCons (Nothing,Nothing,"Prelude","(,)") [TCons (Nothing,Nothing,"Prelude","Bool") [],TVar 162]))),"Prelude","(,)")) [(Just (TVar 164),2),(Just (TVar 162),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 164]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 162]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 162]))),"Prelude",">>")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 164]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 164])),"Oracle","safeIOResult")) [Comb FuncCall ((Nothing,Just (FuncType (TVar 164) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 164])),"Prelude","return")) [Var ((Just (TVar 164),2))]],Comb FuncCall ((Nothing,Just (FuncType (TVar 162) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 162])),"Prelude","return")) [Var ((Just (TVar 162),3))]])])),Func ((Nothing,Just (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))),"Oracle","compose")) 3 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),(Just (TVar 2),3)] (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)),Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 0))),"Prelude","apply")) [Var ((Just (FuncType (TVar 2) (TVar 0)),2)),Var ((Just (TVar 2),3))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Oracle","oracle")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 0)) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"CEventOracle","initialize")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TVar 0) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (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")) [],Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)),1))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"Oracle","oracleIO")) 1 Public (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])))) (TCons ((Nothing,Nothing,"Prelude","IO")) [TCons ((Nothing,Nothing,"Prelude","()")) []])) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),1)] (Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])) (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []])),"CEventOracle","initialize")) [Comb (FuncPartCall 1) ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Oracle","oracleIO._#lambda3")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])))),1))]])),Func ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195]))),"Oracle","oracleIO._#lambda3")) 2 Private (FuncType (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (FuncType (TCons ((Nothing,Nothing,"Prelude","()")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 195])))) (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 195]))) (Rule [(Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))),1),(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)] (Let [((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3),Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"CEventOracle","Ref") [])),"CEventOracle","fresh")) [Comb ConsCall ((Nothing,Just (TVar 199),"Prelude","()")) []])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))),"CEventOracle","expand")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2)),Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]))),"Prelude",":")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3)),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"CEventOracle","Ref") []]),"Prelude","[]")) []],Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195]))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195]))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))),"Prelude","apply")) [Comb FuncCall ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195]))))),"Prelude","apply")) [Var ((Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TCons (Nothing,Nothing,"Prelude","()") []) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 195])))),1)),Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),2))],Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),3))],Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","()") []),"Prelude","()")) []]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0])),"Oracle","safeIOResult")) 1 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 0])) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1)] (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") [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","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]])),"IOExts","getAssoc")) [Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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  '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  '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  'n'),Comb ConsCall ((Nothing,Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),"Prelude","[]")) []]]]]]],Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]))),"Oracle","safeIOResult._#lambda4")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 0]),1))]])),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]) (FuncType (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]))),"Oracle","safeIOResult._#lambda4")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 120]) (FuncType (TCons ((Nothing,Nothing,"Prelude","Maybe")) [TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]]) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 120]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]),1),(Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2)] (Case  Flex (Var ((Just (TCons (Nothing,Nothing,"Prelude","Maybe") [TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]]),2))) [Branch (Pattern ((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")) [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3)]) (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]) (FuncType (FuncType (TVar 120) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120])) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]))),"Prelude",">>=")) [Var ((Just (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]),1)),Comb (FuncPartCall 1) ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]) (FuncType (TVar 120) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]))),"Oracle","safeIOResult._#lambda4._#lambda5")) [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 (TVar 120) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]))),"Oracle","safeIOResult._#lambda4._#lambda5")) 2 Private (FuncType (TCons ((Nothing,Nothing,"Prelude","[]")) [TCons ((Nothing,Nothing,"Prelude","Char")) []]) (FuncType (TVar 120) (TCons ((Nothing,Nothing,"Prelude","IO")) [TVar 120]))) (Rule [(Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),1),(Just (TVar 120),2)] (Let [((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3),Comb FuncCall ((Nothing,Just (FuncType (TVar 121) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [Var ((Just (TVar 120),2))])] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TCons (Nothing,Nothing,"Prelude","()") []]) (FuncType (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120]))),"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","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","++")) [Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"Prelude","Int") []) (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []])),"Prelude","show")) [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))]],Comb ConsCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"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'),Var ((Just (TCons (Nothing,Nothing,"Prelude","[]") [TCons (Nothing,Nothing,"Prelude","Char") []]),3))]]],Comb FuncCall ((Nothing,Just (FuncType (TVar 120) (TCons (Nothing,Nothing,"Prelude","IO") [TVar 120])),"Prelude","return")) [Var ((Just (TVar 120),2))]]))),Func ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)),"Oracle","unknown")) 1 Public (FuncType (TCons ((Nothing,Nothing,"CEventOracle","Ref")) []) (TVar 0)) (Rule [(Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),1)] (Comb FuncCall ((Nothing,Just (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 0)),"CEventOracle","unknown")) [Var ((Just (TCons (Nothing,Nothing,"CEventOracle","Ref") []),1))]))] [Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$!")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$!!")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$#")) InfixrOp 0,Op ((Nothing,Just (FuncType (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons (Nothing,Nothing,"CEventOracle","Ref") []) (TVar 1)))),"Oracle","$##")) InfixrOp 0]
+ src/lib/Curry/Module/.curry/Oracle.fcy view
@@ -0,0 +1,1 @@+Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [] [Func ("Oracle","partCons") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Comb FuncCall ("Prelude","apply") [Var 1,Var 3]])),Func ("Oracle","partFunc") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 3],Var 2])),Func ("Oracle","partCall") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","closeRef") [Var 2,Var 1])),Func ("Oracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","apply") [Var 1,Var 2,Var 3])),Func ("Oracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!") [Var 1,Var 2,Var 3])),Func ("Oracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$!!") [Var 1,Var 2,Var 3])),Func ("Oracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$#") [Var 1,Var 2,Var 3])),Func ("Oracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","$##") [Var 1,Var 2,Var 3])),Func ("Oracle","headNormalFormIO") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("Prelude","error") [Comb ConsCall ("Prelude",":") [Lit (Charc  'h'),Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'd'),Comb ConsCall ("Prelude",":") [Lit (Charc  'N'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'a'),Comb ConsCall ("Prelude",":") [Lit (Charc  'l'),Comb ConsCall ("Prelude",":") [Lit (Charc  'F'),Comb ConsCall ("Prelude",":") [Lit (Charc  'o'),Comb ConsCall ("Prelude",":") [Lit (Charc  'r'),Comb ConsCall ("Prelude",":") [Lit (Charc  'm'),Comb ConsCall ("Prelude",":") [Lit (Charc  'I'),Comb ConsCall ("Prelude",":") [Lit (Charc  'O'),Comb ConsCall ("Prelude","[]") []]]]]]]]]]]]]]]]]])),Func ("Oracle","prim_unsafePerformIO") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [1,2] (Comb FuncCall ("CEventOracle","replace") [Var 2,Comb FuncCall ("Unsafe","unsafePerformIO") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Comb ConsCall ("Prelude","()") []]]])),Func ("Oracle","lambda_world") 3 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 2,Var 1])),Func ("Oracle",">>=") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","bind") [Var 1,Var 2]]])),Func ("Oracle","bind") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb (FuncPartCall 1) ("Oracle","bind2") [Var 2,Var 3,Var 5]]]))),Func ("Oracle","bind2") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TCons ("Prelude","IO") [TVar 1]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 3,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Oracle","apply") [Comb FuncCall ("Oracle","apply") [Var 1,Var 4,Var 3],Var 2,Var 5]]))),Func ("Oracle","catchFail") 3 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))))) (Rule [1,2,3] (Comb FuncCall ("CEventOracle","collapse") [Var 3,Comb (FuncPartCall 2) ("Oracle","partFunc") [Comb (FuncPartCall 2) ("Oracle","catch") [Var 1,Var 2]]])),Func ("Oracle","catch") 4 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (TCons ("Prelude","()") []) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 0]))))) (Rule [1,2,3,4] (Let [(5,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 4,Comb ConsCall ("Prelude",":") [Var 5,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Prelude","catchFail") [Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 1,Var 3,Var 4],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","True") []]]],Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("Oracle","apply") [Var 2,Var 3,Var 5],Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Comb (ConsPartCall 1) ("Prelude","(,)") [Comb ConsCall ("Prelude","False") []]]]],Comb (FuncPartCall 1) ("Oracle","catch._#lambda2") []]]))),Func ("Oracle","catch._#lambda2") 1 Private (FuncType (TCons ("Prelude","(,)") [TCons ("Prelude","Bool") [],TVar 162]) (TCons ("Prelude","IO") [TVar 162])) (Rule [1] (Case  Flex (Var 1) [Branch (Pattern ("Prelude","(,)") [2,3]) (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Oracle","safeIOResult") [Comb FuncCall ("Prelude","return") [Var 2]],Comb FuncCall ("Prelude","return") [Var 3]])])),Func ("Oracle","compose") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [1,2,3] (Comb FuncCall ("Prelude","apply") [Var 1,Comb FuncCall ("Prelude","apply") [Var 2,Var 3]])),Func ("Oracle","oracle") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb FuncCall ("Prelude",".") [Comb (FuncPartCall 1) ("Prelude","return") [],Var 1]])),Func ("Oracle","oracleIO") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [1] (Comb FuncCall ("CEventOracle","initialize") [Comb (FuncPartCall 1) ("Oracle","oracleIO._#lambda3") [Var 1]])),Func ("Oracle","oracleIO._#lambda3") 2 Private (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 195])))) (FuncType (TCons ("CEventOracle","Ref") []) (TCons ("Prelude","IO") [TVar 195]))) (Rule [1,2] (Let [(3,Comb FuncCall ("CEventOracle","fresh") [Comb ConsCall ("Prelude","()") []])] (Comb FuncCall ("CEventOracle","expand") [Var 2,Comb ConsCall ("Prelude",":") [Var 3,Comb ConsCall ("Prelude","[]") []],Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Comb FuncCall ("Prelude","apply") [Var 1,Var 2],Var 3],Comb ConsCall ("Prelude","()") []]]))),Func ("Oracle","safeIOResult") 1 Private (FuncType (TCons ("Prelude","IO") [TVar 0]) (TCons ("Prelude","IO") [TVar 0])) (Rule [1] (Comb FuncCall ("Prelude",">>=") [Comb FuncCall ("IOExts","getAssoc") [Comb ConsCall ("Prelude",":") [Lit (Charc  'e'),Comb ConsCall ("Prelude",":") [Lit (Charc  'x'),Comb ConsCall ("Prelude",":") [Lit (Charc  't'),Comb ConsCall ("Prelude",":") [Lit (Charc  'f'),Comb ConsCall ("Prelude",":") [Lit (Charc  'n'),Comb ConsCall ("Prelude","[]") []]]]]]],Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4") [Var 1]])),Func ("Oracle","safeIOResult._#lambda4") 2 Private (FuncType (TCons ("Prelude","IO") [TVar 120]) (FuncType (TCons ("Prelude","Maybe") [TCons ("Prelude","[]") [TCons ("Prelude","Char") []]]) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Case  Flex (Var 2) [Branch (Pattern ("Prelude","Just") [3]) (Comb FuncCall ("Prelude",">>=") [Var 1,Comb (FuncPartCall 1) ("Oracle","safeIOResult._#lambda4._#lambda5") [Var 3]])])),Func ("Oracle","safeIOResult._#lambda4._#lambda5") 2 Private (FuncType (TCons ("Prelude","[]") [TCons ("Prelude","Char") []]) (FuncType (TVar 120) (TCons ("Prelude","IO") [TVar 120]))) (Rule [1,2] (Let [(3,Comb FuncCall ("Prelude","show") [Var 2])] (Comb FuncCall ("Prelude",">>") [Comb FuncCall ("Prelude","appendFile") [Var 1,Comb FuncCall ("Prelude","++") [Comb FuncCall ("Prelude","show") [Comb FuncCall ("Prelude","length") [Var 3]],Comb ConsCall ("Prelude",":") [Lit (Charc  '\n'),Var 3]]],Comb FuncCall ("Prelude","return") [Var 2]]))),Func ("Oracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (Rule [1] (Comb FuncCall ("CEventOracle","unknown") [Var 1]))] [Op ("Oracle","$!") InfixrOp 0,Op ("Oracle","$!!") InfixrOp 0,Op ("Oracle","$#") InfixrOp 0,Op ("Oracle","$##") InfixrOp 0]
+ src/lib/Curry/Module/.curry/Oracle.fint view
@@ -0,0 +1,1 @@+Prog "Oracle" ["CEventOracle","IOExts","Prelude","Unsafe","Meta"] [Type ("CEventOracle","Ref") Public [] []] [Func ("CEventOracle","fresh") 1 Public (FuncType (TCons ("Prelude","()") []) (TCons ("CEventOracle","Ref") [])) (Rule [] (Var 0)),Func ("CEventOracle","replace") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","collapse") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","closeRef") 2 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 0))) (Rule [] (Var 0)),Func ("CEventOracle","expand") 3 Public (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","[]") [TCons ("CEventOracle","Ref") []]) (FuncType (TVar 0) (TVar 0)))) (Rule [] (Var 0)),Func ("Oracle","partCons") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","partFunc") 3 Public (FuncType (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","partCall") 2 Public (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0))) (Rule [] (Var 0)),Func ("Oracle","apply") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$!!") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$#") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","$##") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (TVar 1))) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle",">>=") 3 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0]))) (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TVar 0) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1]))))) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 1])))))) (Rule [] (Var 0)),Func ("Oracle","compose") 3 Public (FuncType (FuncType (TVar 0) (TVar 1)) (FuncType (FuncType (TVar 2) (TVar 0)) (FuncType (TVar 2) (TVar 1)))) (Rule [] (Var 0)),Func ("Oracle","oracle") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Oracle","oracleIO") 1 Public (FuncType (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("CEventOracle","Ref") []) (FuncType (TCons ("Prelude","()") []) (TCons ("Prelude","IO") [TVar 0])))) (TCons ("Prelude","IO") [TCons ("Prelude","()") []])) (Rule [] (Var 0)),Func ("Oracle","unknown") 1 Public (FuncType (TCons ("CEventOracle","Ref") []) (TVar 0)) (Rule [] (Var 0))] [Op ("Oracle","$!") InfixrOp 0,Op ("Oracle","$!!") InfixrOp 0,Op ("Oracle","$#") InfixrOp 0,Op ("Oracle","$##") InfixrOp 0]
+ src/lib/Curry/Module/.curry/Oracle.uacy view
@@ -0,0 +1,25 @@+CurryProg "Oracle"+ ["Prelude","IOExts","CEventOracle","Meta","Unsafe"]+ []+ [CFunc ("Oracle","$!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$!!") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$!!")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$#") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$#")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","$##") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","$##")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle",">>=") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","bind")) (CVar (0,"act"))) (CVar (1,"cont")))))] []]),+  CFunc ("Oracle","apply") 3 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b")))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CApply (CSymbol ("CEventOracle","apply")) (CVar (0,"f"))) (CVar (1,"x"))) (CVar (2,"r")))] []]),+  CFunc ("Oracle","bind") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"cont"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref2")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref2"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CApply (CSymbol ("Oracle","bind2")) (CVar (1,"cont"))) (CVar (2,"world"))) (CVar (4,"ref2"))))))] []]),+  CFunc ("Oracle","bind2") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CRules CFlex [CRule [CPVar (0,"cont"),CPVar (1,"world"),CPVar (2,"ref2"),CPVar (3,"x")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref3")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (2,"ref2"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref3"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"cont"))) (CVar (3,"x"))) (CVar (2,"ref2")))) (CVar (1,"world"))) (CVar (4,"ref3")))))] []]),+  CFunc ("Oracle","catch") 4 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("Prelude","()") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"world"),CPVar (3,"ref")] [(CSymbol ("Prelude","success"),CLetDecl [CLocalPat (CPVar (4,"ref'")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (3,"ref"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (4,"ref'"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CSymbol ("Prelude","catchFail")) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (0,"act1"))) (CVar (2,"world"))) (CVar (3,"ref")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","True")))))) (CApply (CApply (CSymbol ("Prelude",">>=")) (CApply (CApply (CApply (CSymbol ("Oracle","apply")) (CVar (1,"act2"))) (CVar (2,"world"))) (CVar (4,"ref'")))) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CApply (CSymbol ("Prelude","(,)")) (CSymbol ("Prelude","False"))))))) (CLambda [CPComb ("Prelude","(,)") [CPVar (5,"b"),CPVar (6,"res")]] (CApply (CApply (CSymbol ("Prelude",">>")) (CApply (CSymbol ("Oracle","safeIOResult")) (CApply (CSymbol ("Prelude","return")) (CVar (5,"b"))))) (CApply (CSymbol ("Prelude","return")) (CVar (6,"res"))))))))] []]),+  CFunc ("Oracle","catchFail") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))))) (CRules CFlex [CRule [CPVar (0,"act1"),CPVar (1,"act2"),CPVar (2,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (2,"ref"))) (CApply (CSymbol ("Oracle","partFunc")) (CApply (CApply (CSymbol ("Oracle","catch")) (CVar (0,"act1"))) (CVar (1,"act2")))))] []]),+  CFunc ("Oracle","compose") 3 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"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CVar (0,"f")) (CApply (CVar (1,"g")) (CVar (2,"x"))))] []]),+  CFunc ("Oracle","headNormalFormIO") 3 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")]))))) (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (1,"b")])))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"x"),CPVar (2,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("Prelude","error")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'h'))) (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 'N'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'o'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'r'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'a'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'l'))) (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 'm'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'I'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'O'))) (CSymbol ("Prelude","[]")))))))))))))))))))] []]),+  CFunc ("Oracle","lambda_world") 3 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref"),CPVar (2,"_")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","collapse")) (CVar (1,"ref"))) (CVar (0,"act")))] []]),+  CFunc ("Oracle","oracle") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"expr")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CApply (CApply (CSymbol ("Prelude",".")) (CSymbol ("Prelude","return"))) (CVar (0,"expr"))))] []]),+  CFunc ("Oracle","oracleIO") 1 Public (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")])))) (CTCons ("Prelude","IO") [CTCons ("Prelude","()") []])) (CRules CFlex [CRule [CPVar (0,"app")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","initialize")) (CLambda [CPVar (1,"mainR")] (CLetDecl [CLocalPat (CPVar (2,"appRef")) (CApply (CSymbol ("CEventOracle","fresh")) (CSymbol ("Prelude","()"))) []] (CApply (CApply (CApply (CSymbol ("CEventOracle","expand")) (CVar (1,"mainR"))) (CApply (CApply (CSymbol ("Prelude",":")) (CVar (2,"appRef"))) (CSymbol ("Prelude","[]")))) (CApply (CApply (CApply (CVar (0,"app")) (CVar (1,"mainR"))) (CVar (2,"appRef"))) (CSymbol ("Prelude","()")))))))] []]),+  CFunc ("Oracle","partCall") 2 Public (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"x"),CPVar (1,"r")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CVar (0,"x")))] []]),+  CFunc ("Oracle","partCons") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"c"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","closeRef")) (CVar (1,"r"))) (CApply (CVar (0,"c")) (CVar (2,"x"))))] []]),+  CFunc ("Oracle","partFunc") 3 Public (CFuncType (CFuncType (CTVar (0,"a")) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (1,"b")))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTVar (0,"a")) (CTVar (1,"b"))))) (CRules CFlex [CRule [CPVar (0,"f"),CPVar (1,"r"),CPVar (2,"x")] [(CSymbol ("Prelude","success"),CApply (CApply (CVar (0,"f")) (CVar (2,"x"))) (CVar (1,"r")))] []]),+  CFunc ("Oracle","prim_unsafePerformIO") 2 Private (CFuncType (CFuncType (CTCons ("CEventOracle","Ref") []) (CFuncType (CTCons ("Prelude","()") []) (CTCons ("Prelude","IO") [CTVar (0,"a")]))) (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a")))) (CRules CFlex [CRule [CPVar (0,"act"),CPVar (1,"ref")] [(CSymbol ("Prelude","success"),CApply (CApply (CSymbol ("CEventOracle","replace")) (CVar (1,"ref"))) (CApply (CSymbol ("Unsafe","unsafePerformIO")) (CApply (CApply (CVar (0,"act")) (CVar (1,"ref"))) (CSymbol ("Prelude","()")))))] []]),+  CFunc ("Oracle","safeIOResult") 1 Private (CFuncType (CTCons ("Prelude","IO") [CTVar (0,"a")]) (CTCons ("Prelude","IO") [CTVar (0,"a")])) (CRules CFlex [CRule [CPVar (0,"act")] [(CSymbol ("Prelude","success"),CDoExpr [CSPat (CPComb ("Prelude","Just") [CPVar (1,"fn")]) (CApply (CSymbol ("IOExts","getAssoc")) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'e'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'x'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 't'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'f'))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc 'n'))) (CSymbol ("Prelude","[]")))))))),CSPat (CPVar (2,"x")) (CVar (0,"act")),CSLet [CLocalPat (CPVar (3,"sx")) (CApply (CSymbol ("Prelude","show")) (CVar (2,"x"))) []],CSExpr (CApply (CApply (CSymbol ("Prelude","appendFile")) (CVar (1,"fn"))) (CApply (CApply (CSymbol ("Prelude","++")) (CApply (CSymbol ("Prelude","show")) (CApply (CSymbol ("Prelude","length")) (CVar (3,"sx"))))) (CApply (CApply (CSymbol ("Prelude",":")) (CLit (CCharc '\n'))) (CVar (3,"sx"))))),CSExpr (CApply (CSymbol ("Prelude","return")) (CVar (2,"x")))])] []]),+  CFunc ("Oracle","unknown") 1 Public (CFuncType (CTCons ("CEventOracle","Ref") []) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"r")] [(CSymbol ("Prelude","success"),CApply (CSymbol ("CEventOracle","unknown")) (CVar (0,"r")))] []])]+ [COp ("Oracle","$##") CInfixrOp 0,COp ("Oracle","$#") CInfixrOp 0,COp ("Oracle","$!!") CInfixrOp 0,COp ("Oracle","$!") CInfixrOp 0]
+ src/lib/Curry/Module/.curry/Trace.acy view
@@ -0,0 +1,5 @@+CurryProg "Trace"+ ["Prelude"]+ []+ [CFunc ("Trace","trace") 1 Public (CFuncType (CTVar (0,"a")) (CTVar (0,"a"))) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []])]+ []
+ src/lib/Curry/Module/.curry/Trace.cy view
@@ -0,0 +1,5 @@+Module "Trace"+Nothing+[(ImportDecl (1,1) "Prelude" False Nothing Nothing)+,(FunctionDecl (1,1) (Ident "trace" 0) [(Equation (1,1) (FunLhs (Ident "trace" 0) [(VariablePattern (Ident "x" 2))]) (SimpleRhs (1,11) (Variable (QualIdent Nothing (Ident "x" 2))) []))])+]
+ src/lib/Curry/Module/.curry/Trace.efc view
@@ -0,0 +1,1 @@+Prog "Trace" ["Prelude"] [] [Func ((Nothing,Just (FuncType (TVar 0) (TVar 0)),"Trace","trace")) 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [(Just (TVar 0),1)] (Var ((Just (TVar 0),1))))] []
+ src/lib/Curry/Module/.curry/Trace.fcy view
@@ -0,0 +1,1 @@+Prog "Trace" ["Prelude"] [] [Func ("Trace","trace") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [1] (Var 1))] []
+ src/lib/Curry/Module/.curry/Trace.fint view
@@ -0,0 +1,1 @@+Prog "Trace" ["Prelude"] [] [Func ("Trace","trace") 1 Public (FuncType (TVar 0) (TVar 0)) (Rule [] (Var 0))] []
+ src/lib/Curry/Module/.curry/Trace.uacy view
@@ -0,0 +1,5 @@+CurryProg "Trace"+ ["Prelude"]+ []+ [CFunc ("Trace","trace") 1 Public (CTCons ("Prelude","untyped") []) (CRules CFlex [CRule [CPVar (0,"x")] [(CSymbol ("Prelude","success"),CVar (0,"x"))] []])]+ []
src/lib/Curry/Module/CEventOracle.hs.include view
@@ -1,1 +1,168 @@-[ForType "Ref" Nothing,ForFunction "initialize",ForFunction "finalize",ForFunction "fresh",ForFunction "replace",ForFunction "collapse",ForFunction "closeRef",ForFunction "expand"]+[ForType "Ref" Nothing+,ForFunction "initialize"+,ForFunction "finalize"+,ForFunction "fresh"+,ForFunction "replace"+,ForFunction "collapse"+,ForFunction "closeRef"+,ForFunction "expand"+,Pragma "LANGUAGE EmptyDataDecls, ForeignFunctionInterface"+,Pragma "INCLUDE <coracle.h>"+]++import Foreign++import Foreign+import Foreign.C.String	++foreign import ccall unsafe "static coracle.h init"      cinitialize :: Ref+foreign import ccall unsafe "static coracle.h nextref"   cfresh      :: Int -> Ref++foreign import ccall unsafe "static coracle.h collapse"  ccollapse   :: Ref -> ()+foreign import ccall unsafe "static coracle.h close_ref" ccloseRef   :: Ref -> ()+foreign import ccall unsafe "static coracle.h inconly"   creplace    :: Ref -> ()+foreign import ccall unsafe "static coracle.h expand"    cexpand     :: Ref -> Int -> ()++foreign import ccall unsafe "coracle.h finalize" cfinalize :: CString -> ()++data CRef++type Ref = Ptr CRef++newtype C_Ref = C_Ref Ref++instance Show C_Ref+instance Read C_Ref+instance Eq   C_Ref+instance BaseCurry C_Ref+instance Curry C_Ref++initRef :: Result (C_IO C_Ref)+initRef = let ref = cinitialize in seq ref (Curry.Module.Prelude.return (C_Ref ref))++finalize :: C_String -> Result (C_IO T0)+finalize s _ = C_IO (\ _ -> do+  s' <- newCString (fromCurry s)+  seq (cfinalize s') (Prelude.return (IOVal (T0))))++--- Side effect that computes a fresh reference.+fresh :: a -> Result C_Ref+fresh _ _ =  C_Ref (cfresh 0)++--- increase couter of ref by one+replace :: C_Ref -> a -> b -> a+replace  (C_Ref ref) x _ = seq (creplace ref) x++--- Remove a ref and combine and counter +1+collapse :: C_Ref -> a -> b -> a+collapse  (C_Ref ref) x _ = seq (ccollapse ref) x++--- Remove a ref and combine and counter +1+closeRef :: C_Ref -> a -> b -> a+closeRef  (C_Ref ref) x _ = seq (ccloseRef ref) x+++--- Projection on last argument that releases an event as a side effect.+-- increment step counter of first ref and add remaining refs+-- list has to be at least of size 1+expand :: C_Ref -> List C_Ref -> a -> Result a+expand  (C_Ref ref) refs x _+  = seq (cexpand ref (len refs)) (seq (evalRefs refs) x)+ where+  len List      = 0+  len (_ :< rs) = 1+len rs++  evalRefs List = ()+  evalRefs (r :< rs) = seq r (evalRefs rs)++-- compare to BaseCurry.mapOr+c_onBranches :: (BaseCurry a,BaseCurry b) => +  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> Result b+c_onBranches r cont orref bs = +  evalRef' True (\ r x st -> replace r (cont r x st) st) (branching orref bs) r +  +liftCase :: (BaseCurry a,BaseCurry b) => +  C_Ref -> (C_Ref -> a -> Result b) -> OrRef -> Branches a -> (Int -> State) -> b+liftCase ref f orref bs = +  expand' ref (length bs - 1) (\ refs -> lift ($) orref (zipWith f refs bs))++expand' :: C_Ref -> Int -> ([C_Ref] -> a) -> a+expand' (C_Ref ref) l cont = +   cexpand ref l `seq`+   evalRefs refs `seq`+   cont (map C_Ref (ref:refs))+ where+   refs = map cfresh (replicate l 0)+   +   evalRefs [] = ()+   evalRefs (r : rs) = seq r (evalRefs rs)+   ++--- generating a fresh variable+unknown :: Curry a => C_Ref -> Result a+unknown r st = freeF (\x -> gen r x st)++gen :: Curry a => C_Ref -> a -> Result a+gen r x st = case consKind x of+  Val       -> push r x st+  Branching -> liftCase r gen (orRef x) (branches x) (const st)++push :: Curry a => C_Ref -> a -> Result a+push r x st = case foldCurry (\ _ n _ -> n+1) 0 x st of+  0 -> collapse r x st+  1 -> replace r (propagate (\_ -> gen r) x st) st+  n -> expand' r (n-1) (\ refs -> propagate (distRefs refs) x st)++  where+    distRefs rs i x = gen (rs!!i) x+  + +type RefFun a b = C_Ref -> Result (Prim (a -> Result b))++($!), ($#),($!!),($##), apply :: (Curry a,Curry b) => +  Prim (RefFun a b) -> a -> C_Ref -> Result b+(cont $! x)  r = Curry.Module.CEventOracle.prepApply hnfRef x cont r+(cont $# x)  r = Curry.Module.CEventOracle.prepApply (evalRef True) x cont r+(cont $!! x) r st = Curry.Module.CEventOracle.prepApply hnfRef (nfCTC const x st) cont r st+(cont $## x) r st = Curry.Module.CEventOracle.prepApply (evalRef True) (gnfCTC const x st) cont r st+++apply cont x r = Curry.Module.CEventOracle.prepApply (\ cont' x' r' st' -> +                               replace r' (Curry.Module.Prelude.apply (cont' r' st') x' st') st') x cont r++prepApply :: (BaseCurry a,BaseCurry b) => +  (RefFun b a -> b -> C_Ref -> Result a) -> b -> Prim (RefFun b a) -> C_Ref -> Result a+prepApply  prep x (PrimValue f) cref st = prep f x cref st+prepApply  prep x (PrimOr r bs) cref st = +  c_onBranches cref (\ r' f' -> Curry.Module.CEventOracle.prepApply prep x f' r') r bs st+prepApply  _    _ f                r st  = collapse r (patternFail "Prelude.prepApply" f) st++hnfRef :: (BaseCurry a,BaseCurry b) => RefFun b a -> b -> C_Ref -> Result a+hnfRef = evalRef False ++evalRef :: (BaseCurry a,BaseCurry b) => HNFMode -> RefFun a b -> a -> C_Ref -> Result b+evalRef mode cont = evalRef' mode (\ r x st ->  replace r (Curry.Module.Prelude.apply (cont r st) x st) st)++evalRef' :: (BaseCurry a,BaseCurry b) => +            HNFMode -> (C_Ref -> a -> Result b) -> a -> C_Ref -> Result b+evalRef' mode cont x r state = + case consKind x of+   Failed    -> closeRef r (addException err x) state+   Branching -> let orref = orRef x+                    bs = branches x in+    manipulateStore+      (closeRef r (Curry.RunTimeSystem.failed (curryError "=:=")) state)+      contEval+      (\ ref' contSt -> if mode || not (isGenerator orref)+                      then liftCase r contEvalRef (narrowOrRef orref) bs contSt+                      else cont r (branching ref' bs) state)+      (\ orref' x' st' -> branching orref' [contEval x' st'])+      orref bs state+   Val       -> cont r x state++  where+    err = curryError ("Prelude."++if mode then "$#" else "$!")+    contEvalRef r' x' st' = evalRef' mode cont x' r' st'+    contEval = contEvalRef r++