summaryrefslogtreecommitdiff
path: root/ghc/lib/haskell-1.3
diff options
context:
space:
mode:
Diffstat (limited to 'ghc/lib/haskell-1.3')
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime.lhs31
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mc.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mg.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mp.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mr.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_mt.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_p.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibCPUTime_t.hi7
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory.lhs376
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mc.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mg.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mp.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mr.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_mt.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_p.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibDirectory_t.hi21
-rw-r--r--ghc/lib/haskell-1.3/LibPosix.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix.lhs101
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB.lhs135
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mc.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mg.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mp.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mr.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_mt.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_p.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixDB_t.hi31
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr.lhs164
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mc.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mg.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mp.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mr.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_mt.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_p.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixErr_t.hi148
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles.lhs559
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mc.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mg.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mp.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mr.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_mt.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_p.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixFiles_t.hi139
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO.lhs258
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mc.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mg.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mp.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mr.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_mt.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_p.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixIO_t.hi33
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv.lhs325
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi75
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim.lhs543
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi193
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY.lhs578
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mc.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mg.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mp.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mr.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_mt.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_p.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixTTY_t.hi62
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil.lhs123
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mc.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mg.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mp.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mr.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_mt.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_p.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosixUtil_t.hi34
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mc.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mg.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mp.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mr.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_mt.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_p.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibPosix_t.hi667
-rw-r--r--ghc/lib/haskell-1.3/LibSystem.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem.lhs103
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mc.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mg.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mp.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mr.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_mt.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_p.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibSystem_t.hi35
-rw-r--r--ghc/lib/haskell-1.3/LibTime.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime.lhs232
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mc.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mg.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mp.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mr.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_mt.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_p.hi52
-rw-r--r--ghc/lib/haskell-1.3/LibTime_t.hi52
117 files changed, 15504 insertions, 0 deletions
diff --git a/ghc/lib/haskell-1.3/LibCPUTime.hi b/ghc/lib/haskell-1.3/LibCPUTime.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime.lhs b/ghc/lib/haskell-1.3/LibCPUTime.lhs
new file mode 100644
index 0000000000..c3db93ed45
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime.lhs
@@ -0,0 +1,31 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibCPUTime]{Haskell 1.3 CPU Time Library}
+
+\begin{code}
+module LibCPUTime where
+
+import PreludeGlaST
+
+getCPUTime :: IO Integer
+getCPUTime =
+ _ccall_ getCPUTime `thenPrimIO` \ ptr@(A# ptr#) ->
+ if ptr /= ``NULL'' then
+ return (fromInt (I# (indexIntOffAddr# ptr# 0#)) * 1000000000 +
+ fromInt (I# (indexIntOffAddr# ptr# 1#)) +
+ fromInt (I# (indexIntOffAddr# ptr# 2#)) * 1000000000 +
+ fromInt (I# (indexIntOffAddr# ptr# 3#)))
+ else
+ failWith (UnsupportedOperation "can't get CPU time")
+
+\end{code}
+
+Computation $getCPUTime$ returns the number of nanoseconds CPU time
+used by the current program. The precision of this result is
+implementation-dependent.
+
+
+
+
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mc.hi b/ghc/lib/haskell-1.3/LibCPUTime_mc.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mc.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mg.hi b/ghc/lib/haskell-1.3/LibCPUTime_mg.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mg.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mp.hi b/ghc/lib/haskell-1.3/LibCPUTime_mp.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mp.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mr.hi b/ghc/lib/haskell-1.3/LibCPUTime_mr.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mr.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_mt.hi b/ghc/lib/haskell-1.3/LibCPUTime_mt.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_mt.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_p.hi b/ghc/lib/haskell-1.3/LibCPUTime_p.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_p.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibCPUTime_t.hi b/ghc/lib/haskell-1.3/LibCPUTime_t.hi
new file mode 100644
index 0000000000..99f7f61033
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibCPUTime_t.hi
@@ -0,0 +1,7 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibCPUTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+getCPUTime :: _State _RealWorld -> (Either IOError13 Integer, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory.hi b/ghc/lib/haskell-1.3/LibDirectory.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory.lhs b/ghc/lib/haskell-1.3/LibDirectory.lhs
new file mode 100644
index 0000000000..2aed6e3d4d
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory.lhs
@@ -0,0 +1,376 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibDirectory]{Haskell 1.3 Directory Operations}
+
+A directory contains a series of entries, each of which is a named
+reference to a file system object (file, directory etc.). Some
+entries may be hidden, inaccessible, or have some administrative
+function (e.g. "." or ".." under POSIX), but in this standard all such
+entries are considered to form part of the directory contents.
+Entries in sub-directories are not, however, considered to form part
+of the directory contents.
+
+Each file system object is referenced by a {\em path}. There is
+normally at least one absolute path to each file system object. In
+some operating systems, it may also be possible to have paths which
+are relative to the current directory.
+
+\begin{code}
+module LibDirectory where
+
+import PreludeIOError
+import PreludeGlaST
+import PS
+
+createDirectory :: FilePath -> IO ()
+createDirectory path =
+ _ccall_ createDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$createDirectory dir$ creates a new directory
+{\em dir} which is initially empty, or as near to empty as the
+operating system allows.
+
+The operation may fail with:
+\begin{itemize}
+\item $AlreadyExists$
+The operand refers to a directory that already exists.
+[$EEXIST$]
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+There is no path to the directory.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$]
+\item $ResourceExhausted$
+Insufficient resources (virtual memory, process file descriptors,
+physical disk space, etc.) are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$EEXIST$]
+\end{itemize}
+
+
+\begin{code}
+removeDirectory :: FilePath -> IO ()
+removeDirectory path =
+ _ccall_ removeDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$removeDirectory dir$ removes an existing directory {\em dir}. The
+implementation may specify additional constraints which must be
+satisfied before a directory can be removed (e.g. the directory has to
+be empty, or may not be in use by other processes). It is not legal
+for an implementation to partially remove a directory unless the
+entire directory is removed. A conformant implementation need not
+support directory removal in all situations (e.g. removal of the root
+directory).
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$, $ENOTEMPTY$, $EEXIST$]
+\item $UnsupportedOperation$
+The implementation does not support removal in this situation.
+[$EINVAL$]
+\item $InappropriateType$
+The operand refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
+
+\begin{code}
+removeFile :: FilePath -> IO ()
+removeFile path =
+ _ccall_ removeFile path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+
+\end{code}
+
+$removeFile file$ removes the directory entry for an existing file
+{\em file}, where {\em file} is not itself a directory. The
+implementation may specify additional constraints which must be
+satisfied before a file can be removed (e.g. the file may not be in
+use by other processes).
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid file name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The file does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$]
+\item $InappropriateType$
+The operand refers to an existing directory.
+[$EPERM$, $EINVAL$]
+\end{itemize}
+
+
+\begin{code}
+renameDirectory :: FilePath -> FilePath -> IO ()
+renameDirectory opath npath =
+ _ccall_ renameDirectory opath npath `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$renameDirectory old$ {\em new} changes the name of an existing
+directory from {\em old} to {\em new}. If the {\em new} directory
+already exists, it is atomically replaced by the {\em old} directory.
+If the {\em new} directory is neither the {\em old} directory nor an
+alias of the {\em old} directory, it is removed as if by
+$removeDirectory$. A conformant implementation need not support
+renaming directories in all situations (e.g. renaming to an existing
+directory, or across different physical devices), but the constraints
+must be documented.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+Either operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The original directory does not exist, or there is no path to the target.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$, $ENOTEMPTY$, $EEXIST$]
+\item $UnsupportedOperation$
+The implementation does not support renaming in this situation.
+[$EINVAL$, $EXDEV$]
+\item $InappropriateType$
+Either path refers to an existing non-directory object.
+[$ENOTDIR$, $EISDIR$]
+\end{itemize}
+
+
+\begin{code}
+renameFile :: FilePath -> FilePath -> IO ()
+renameFile opath npath =
+ _ccall_ renameFile opath npath `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+$renameFile old$ {\em new} changes the name of an existing file system
+object from {\em old} to {\em new}. If the {\em new} object already
+exists, it is atomically replaced by the {\em old} object. Neither
+path may refer to an existing directory. A conformant implementation
+need not support renaming files in all situations (e.g. renaming
+across different physical devices), but the constraints must be
+documented.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+Either operand is not a valid file name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The original file does not exist, or there is no path to the target.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EROFS$, $EACCES$, $EPERM$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EDQUOT$, $ENOSPC$, $ENOMEM$,
+$EMLINK$]
+\item $UnsatisfiedConstraints$
+Implementation-dependent constraints are not satisfied.
+[$EBUSY$]
+\item $UnsupportedOperation$
+The implementation does not support renaming in this situation.
+[$EXDEV$]
+\item $InappropriateType$
+Either path refers to an existing directory.
+[$ENOTDIR$, $EISDIR$, $EINVAL$,
+$EEXIST$, $ENOTEMPTY$]
+\end{itemize}
+
+
+\begin{code}
+getDirectoryContents :: FilePath -> IO [FilePath]
+getDirectoryContents path =
+ _ccall_ getDirectoryContents path `thenPrimIO` \ ptr ->
+ getEntries ptr 0 `thenPrimIO` \ entries ->
+ _ccall_ free ptr `thenPrimIO` \ () ->
+ return entries
+ where
+ getEntries :: _Addr -> Int -> PrimIO [FilePath]
+ getEntries ptr n =
+ _casm_ ``%r = ((char **)%0)[%1];'' ptr n `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ returnPrimIO []
+ else
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ entry ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ getEntries ptr (n+1) `thenPrimIO` \ entries ->
+ returnPrimIO (_unpackPS entry : entries)
+
+\end{code}
+
+$getDirectoryContents dir$ returns a list of
+<i>all</i> entries in {\em dir}.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+[$EMFILE$, $ENFILE$]
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
+
+\begin{code}
+getCurrentDirectory :: IO FilePath
+getCurrentDirectory =
+ _ccall_ getCurrentDirectory `thenPrimIO` \ str ->
+ if str /= ``NULL'' then
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ pwd ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ return (_unpackPS pwd)
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+If the operating system has a notion of current directories,
+$getCurrentDirectory$ returns an absolute path to the
+current directory of the calling process.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $NoSuchThing$
+There is no path referring to the current directory.
+[$EPERM$, $ENOENT$, $ESTALE$...]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+\item $UnsupportedOperation$
+The operating system has no notion of current directory.
+\end{itemize}
+
+
+\begin{code}
+setCurrentDirectory :: FilePath -> IO ()
+setCurrentDirectory path =
+ _ccall_ setCurrentDirectory path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+\end{code}
+
+If the operating system has a notion of current directories,
+$setCurrentDirectory dir$ changes the current
+directory of the calling process to {\em dir}.
+
+The operation may fail with:
+\begin{itemize}
+\item $HardwareFault$
+A physical I/O error has occurred.
+[$EIO$]
+\item $InvalidArgument$
+The operand is not a valid directory name.
+[$ENAMETOOLONG$, $ELOOP$]
+\item $NoSuchThing$
+The directory does not exist.
+[$ENOENT$, $ENOTDIR$]
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+[$EACCES$]
+\item $UnsupportedOperation$
+The operating system has no notion of current directory, or the
+current directory cannot be dynamically changed.
+\item $InappropriateType$
+The path refers to an existing non-directory object.
+[$ENOTDIR$]
+\end{itemize}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mc.hi b/ghc/lib/haskell-1.3/LibDirectory_mc.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mc.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mg.hi b/ghc/lib/haskell-1.3/LibDirectory_mg.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mg.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mp.hi b/ghc/lib/haskell-1.3/LibDirectory_mp.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mp.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mr.hi b/ghc/lib/haskell-1.3/LibDirectory_mr.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mr.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_mt.hi b/ghc/lib/haskell-1.3/LibDirectory_mt.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_mt.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_p.hi b/ghc/lib/haskell-1.3/LibDirectory_p.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_p.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibDirectory_t.hi b/ghc/lib/haskell-1.3/LibDirectory_t.hi
new file mode 100644
index 0000000000..f544b757f8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibDirectory_t.hi
@@ -0,0 +1,21 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibDirectory where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+createDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getCurrentDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getDirectoryContents :: [Char] -> _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameDirectory :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+renameFile :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 221 _N_ _S_ "LLU(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setCurrentDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix.hi b/ghc/lib/haskell-1.3/LibPosix.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix.lhs b/ghc/lib/haskell-1.3/LibPosix.lhs
new file mode 100644
index 0000000000..e97215efb4
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix.lhs
@@ -0,0 +1,101 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosix]{Haskell 1.3 POSIX bindings}
+
+\begin{code}
+module LibPosix (
+ LibPosixDB..,
+ LibPosixErr..,
+ LibPosixFiles..,
+ LibPosixIO..,
+ LibPosixProcEnv..,
+ LibPosixProcPrim..,
+ LibPosixTTY..,
+
+ runProcess,
+
+ ByteCount(..),
+ Channel(..),
+ ClockTick(..),
+ EpochTime(..),
+ FileOffset(..),
+ GroupID(..),
+ Limit(..),
+ LinkCount(..),
+ ProcessID(..),
+ ProcessGroupID(..),
+ UserID(..),
+
+ ExitCode
+ ) where
+
+
+import LibPosixDB
+import LibPosixErr
+import LibPosixFiles
+import LibPosixIO
+import LibPosixProcEnv
+import LibPosixProcPrim
+import LibPosixTTY
+import LibPosixUtil
+
+-- runProcess is our candidate for the high-level OS-independent primitive
+-- If accepted, it will be moved out of LibPosix into LibSystem.
+
+import LibDirectory ( setCurrentDirectory )
+
+import PreludeGlaST
+import PreludePrimIO ( takeMVar, putMVar, _MVar )
+import PreludeStdIO
+
+runProcess :: FilePath -- Command
+ -> [String] -- Arguments
+ -> Maybe [(String, String)] -- Environment
+ -> Maybe FilePath -- Working directory
+ -> Maybe Handle -- stdin
+ -> Maybe Handle -- stdout
+ -> Maybe Handle -- stderr
+ -> IO ()
+runProcess path args env dir stdin stdout stderr =
+ forkProcess >>= \ pid ->
+ case pid of
+ Nothing -> doTheBusiness
+ Just x -> return ()
+ where
+ doTheBusiness :: IO ()
+ doTheBusiness =
+ maybeChangeWorkingDirectory >>
+ maybeDup2 0 stdin >>
+ maybeDup2 1 stdout >>
+ maybeDup2 2 stderr >>
+ executeFile path True args env >>
+ syserr "runProcess"
+
+ maybeChangeWorkingDirectory :: IO ()
+ maybeChangeWorkingDirectory =
+ case dir of
+ Nothing -> return ()
+ Just x -> setCurrentDirectory x
+
+ maybeDup2 :: Int -> Maybe Handle -> IO ()
+ maybeDup2 dest h =
+ case h of Nothing -> return ()
+ Just x -> handleFD x >>= \ src ->
+ dupChannelTo src dest >>
+ return ()
+
+ handleFD :: Handle -> IO Channel
+ handleFD handle =
+ takeMVar handle >>= \ htype ->
+ putMVar handle htype >>
+ case htype of
+ _ErrorHandle ioError -> failWith ioError
+ _ClosedHandle -> failWith (IllegalOperation "handle is closed")
+ _SemiClosedHandle _ _ -> failWith (IllegalOperation "handle is closed")
+ other ->
+ _casm_ ``%r = fileno((FILE *)%0);'' (_filePtr other)
+ `thenPrimIO` \ fd ->
+ return fd
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixDB.hi b/ghc/lib/haskell-1.3/LibPosixDB.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB.lhs b/ghc/lib/haskell-1.3/LibPosixDB.lhs
new file mode 100644
index 0000000000..e6d483ce9d
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB.lhs
@@ -0,0 +1,135 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixDB]{Haskell 1.3 POSIX System Databases}
+
+\begin{code}
+module LibPosixDB (
+ GroupEntry,
+ UserEntry,
+
+ getGroupEntryForID,
+ getGroupEntryForName,
+ getUserEntryForID,
+ getUserEntryForName,
+ groupID,
+ groupMembers,
+ groupName,
+ homeDirectory,
+ userGroupID,
+ userID,
+ userName,
+ userShell
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixUtil
+
+data GroupEntry = GE String GroupID [String]
+
+groupName :: GroupEntry -> String
+groupName (GE name _ _) = name
+
+groupID :: GroupEntry -> GroupID
+groupID (GE _ gid _) = gid
+
+groupMembers :: GroupEntry -> [String]
+groupMembers (GE _ _ members) = members
+
+getGroupEntryForID :: GroupID -> IO GroupEntry
+getGroupEntryForID gid =
+ _ccall_ getgrgid gid `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such group entry")
+ else
+ unpackGroupEntry ptr `thenPrimIO` \ group ->
+ return group
+
+getGroupEntryForName :: String -> IO GroupEntry
+getGroupEntryForName name =
+ _packBytesForCST name `thenStrictlyST` \ gname ->
+ _ccall_ getgrnam gname `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such group entry")
+ else
+ unpackGroupEntry ptr `thenPrimIO` \ group ->
+ return group
+
+data UserEntry = UE String UserID GroupID String String
+
+userName :: UserEntry -> String
+userName (UE name _ _ _ _) = name
+
+userID :: UserEntry -> UserID
+userID (UE _ uid _ _ _) = uid
+
+userGroupID :: UserEntry -> GroupID
+userGroupID (UE _ _ gid _ _) = gid
+
+homeDirectory :: UserEntry -> String
+homeDirectory (UE _ _ _ home _) = home
+
+userShell :: UserEntry -> String
+userShell (UE _ _ _ _ shell) = shell
+
+getUserEntryForID :: UserID -> IO UserEntry
+getUserEntryForID uid =
+ _ccall_ getpwuid uid `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such user entry")
+ else
+ unpackUserEntry ptr `thenPrimIO` \ user ->
+ return user
+
+getUserEntryForName :: String -> IO UserEntry
+getUserEntryForName name =
+ _packBytesForCST name `thenStrictlyST` \ uname ->
+ _ccall_ getpwnam uname `thenPrimIO` \ ptr ->
+ if ptr == ``NULL'' then
+ failWith (NoSuchThing "no such user entry")
+ else
+ unpackUserEntry ptr `thenPrimIO` \ user ->
+ return user
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Copy the static structure returned by getgr* into a Haskell structure
+
+unpackGroupEntry :: _Addr -> PrimIO GroupEntry
+unpackGroupEntry ptr =
+ _casm_ ``%r = ((struct group *)%0)->gr_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct group *)%0)->gr_gid;'' ptr
+ `thenPrimIO` \ gid ->
+ _casm_ ``%r = ((struct group *)%0)->gr_mem;'' ptr
+ `thenPrimIO` \ mem ->
+ unvectorize mem 0 `thenStrictlyST` \ members ->
+ returnPrimIO (GE name gid members)
+
+-- Copy the static structure returned by getpw* into a Haskell structure
+
+unpackUserEntry :: _Addr -> PrimIO UserEntry
+unpackUserEntry ptr =
+ _casm_ ``%r = ((struct passwd *)%0)->pw_name;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_uid;'' ptr
+ `thenPrimIO` \ uid ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_gid;'' ptr
+ `thenPrimIO` \ gid ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_dir;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ home ->
+ _casm_ ``%r = ((struct passwd *)%0)->pw_shell;'' ptr
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ shell ->
+ returnPrimIO (UE name uid gid home shell)
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mc.hi b/ghc/lib/haskell-1.3/LibPosixDB_mc.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mc.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mg.hi b/ghc/lib/haskell-1.3/LibPosixDB_mg.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mg.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mp.hi b/ghc/lib/haskell-1.3/LibPosixDB_mp.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mp.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mr.hi b/ghc/lib/haskell-1.3/LibPosixDB_mr.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mr.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_mt.hi b/ghc/lib/haskell-1.3/LibPosixDB_mt.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_mt.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_p.hi b/ghc/lib/haskell-1.3/LibPosixDB_p.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_p.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixDB_t.hi b/ghc/lib/haskell-1.3/LibPosixDB_t.hi
new file mode 100644
index 0000000000..75e254ad1a
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixDB_t.hi
@@ -0,0 +1,31 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixDB where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr.hi b/ghc/lib/haskell-1.3/LibPosixErr.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr.lhs b/ghc/lib/haskell-1.3/LibPosixErr.lhs
new file mode 100644
index 0000000000..bcc7137b44
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr.lhs
@@ -0,0 +1,164 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixErr]{Haskell 1.3 POSIX Error Codes}
+
+\begin{code}
+module LibPosixErr
+where
+
+import PreludeGlaST
+
+type ErrorCode = Int
+
+getErrorCode :: IO ErrorCode
+getErrorCode =
+ _casm_ ``%r = errno;'' `thenPrimIO` \ errno ->
+ return errno
+
+setErrorCode :: ErrorCode -> IO ()
+setErrorCode errno =
+ _casm_ ``errno = %0;'' errno `thenPrimIO` \ () ->
+ return ()
+
+noError :: ErrorCode
+noError = 0
+
+argumentListTooLong, e2BIG :: ErrorCode
+argumentListTooLong = ``E2BIG''
+e2BIG = ``E2BIG''
+
+badChannel, eBADF :: ErrorCode
+badChannel = ``EBADF''
+eBADF = ``EBADF''
+
+brokenPipe, ePIPE :: ErrorCode
+brokenPipe = ``EPIPE''
+ePIPE = ``EPIPE''
+
+directoryNotEmpty, eNOTEMPTY :: ErrorCode
+directoryNotEmpty = ``ENOTEMPTY''
+eNOTEMPTY = ``ENOTEMPTY''
+
+execFormatError, eNOEXEC :: ErrorCode
+execFormatError = ``ENOEXEC''
+eNOEXEC = ``ENOEXEC''
+
+fileAlreadyExists, eEXIST :: ErrorCode
+fileAlreadyExists = ``EEXIST''
+eEXIST = ``EEXIST''
+
+fileTooLarge, eFBIG :: ErrorCode
+fileTooLarge = ``EFBIG''
+eFBIG = ``EFBIG''
+
+filenameTooLong, eNAMETOOLONG :: ErrorCode
+filenameTooLong = ``ENAMETOOLONG''
+eNAMETOOLONG = ``ENAMETOOLONG''
+
+improperLink, eXDEV :: ErrorCode
+improperLink = ``EXDEV''
+eXDEV = ``EXDEV''
+
+inappropriateIOControlOperation, eNOTTY :: ErrorCode
+inappropriateIOControlOperation = ``ENOTTY''
+eNOTTY = ``ENOTTY''
+
+inputOutputError, eIO :: ErrorCode
+inputOutputError = ``EIO''
+eIO = ``EIO''
+
+interruptedOperation, eINTR :: ErrorCode
+interruptedOperation = ``EINTR''
+eINTR = ``EINTR''
+
+invalidArgument, eINVAL :: ErrorCode
+invalidArgument = ``EINVAL''
+eINVAL = ``EINVAL''
+
+invalidSeek, eSPIPE :: ErrorCode
+invalidSeek = ``ESPIPE''
+eSPIPE = ``ESPIPE''
+
+isADirectory, eISDIR :: ErrorCode
+isADirectory = ``EISDIR''
+eISDIR = ``EISDIR''
+
+noChildProcess, eCHILD :: ErrorCode
+noChildProcess = ``ECHILD''
+eCHILD = ``ECHILD''
+
+noLocksAvailable, eNOLCK :: ErrorCode
+noLocksAvailable = ``ENOLCK''
+eNOLCK = ``ENOLCK''
+
+noSpaceLeftOnDevice, eNOSPC :: ErrorCode
+noSpaceLeftOnDevice = ``ENOSPC''
+eNOSPC = ``ENOSPC''
+
+noSuchOperationOnDevice, eNODEV :: ErrorCode
+noSuchOperationOnDevice = ``ENODEV''
+eNODEV = ``ENODEV''
+
+noSuchDeviceOrAddress, eNXIO :: ErrorCode
+noSuchDeviceOrAddress = ``ENXIO''
+eNXIO = ``ENXIO''
+
+noSuchFileOrDirectory, eNOENT :: ErrorCode
+noSuchFileOrDirectory = ``ENOENT''
+eNOENT = ``ENOENT''
+
+noSuchProcess, eSRCH :: ErrorCode
+noSuchProcess = ``ESRCH''
+eSRCH = ``ESRCH''
+
+notADirectory, eNOTDIR :: ErrorCode
+notADirectory = ``ENOTDIR''
+eNOTDIR = ``ENOTDIR''
+
+notEnoughMemory, eNOMEM :: ErrorCode
+notEnoughMemory = ``ENOMEM''
+eNOMEM = ``ENOMEM''
+
+operationNotImplemented, eNOSYS :: ErrorCode
+operationNotImplemented = ``ENOSYS''
+eNOSYS = ``ENOSYS''
+
+operationNotPermitted, ePERM :: ErrorCode
+operationNotPermitted = ``EPERM''
+ePERM = ``EPERM''
+
+permissionDenied, eACCES :: ErrorCode
+permissionDenied = ``EACCES''
+eACCES = ``EACCES''
+
+readOnlyFileSystem, eROFS :: ErrorCode
+readOnlyFileSystem = ``EROFS''
+eROFS = ``EROFS''
+
+resourceBusy, eBUSY :: ErrorCode
+resourceBusy = ``EBUSY''
+eBUSY = ``EBUSY''
+
+resourceDeadlockAvoided, eDEADLK :: ErrorCode
+resourceDeadlockAvoided = ``EDEADLK''
+eDEADLK = ``EDEADLK''
+
+resourceTemporarilyUnavailable, eAGAIN :: ErrorCode
+resourceTemporarilyUnavailable = ``EAGAIN''
+eAGAIN = ``EAGAIN''
+
+tooManyLinks, eMLINK :: ErrorCode
+tooManyLinks = ``EMLINK''
+eMLINK = ``EMLINK''
+
+tooManyOpenFiles, eMFILE :: ErrorCode
+tooManyOpenFiles = ``EMFILE''
+eMFILE = ``EMFILE''
+
+tooManyOpenFilesInSystem, eNFILE :: ErrorCode
+tooManyOpenFilesInSystem = ``ENFILE''
+eNFILE = ``ENFILE''
+
+\end{code}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mc.hi b/ghc/lib/haskell-1.3/LibPosixErr_mc.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mc.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mg.hi b/ghc/lib/haskell-1.3/LibPosixErr_mg.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mg.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mp.hi b/ghc/lib/haskell-1.3/LibPosixErr_mp.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mp.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mr.hi b/ghc/lib/haskell-1.3/LibPosixErr_mr.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mr.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_mt.hi b/ghc/lib/haskell-1.3/LibPosixErr_mt.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_mt.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_p.hi b/ghc/lib/haskell-1.3/LibPosixErr_p.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_p.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixErr_t.hi b/ghc/lib/haskell-1.3/LibPosixErr_t.hi
new file mode 100644
index 0000000000..5e63c231e8
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixErr_t.hi
@@ -0,0 +1,148 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixErr where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ErrorCode = Int
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles.hi b/ghc/lib/haskell-1.3/LibPosixFiles.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles.lhs b/ghc/lib/haskell-1.3/LibPosixFiles.lhs
new file mode 100644
index 0000000000..f2caeb4069
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles.lhs
@@ -0,0 +1,559 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixFiles]{Haskell 1.3 POSIX File and Directory Operations}
+
+\begin{code}
+module LibPosixFiles (
+ DeviceID(..),
+ DirStream(..),
+ FileID(..),
+ FileMode(..),
+ FileStatus(..),
+ OpenMode(..),
+ PathVar(..),
+
+ accessModes,
+ accessTime,
+ changeWorkingDirectory, -- Too much like LibDirectory thing?
+ closeDirStream,
+ createDirectory, -- Too much like LibDirectory thing?
+ createFile,
+ createLink,
+ createNamedPipe,
+ deviceID,
+ fileGroup,
+ fileID,
+ fileMode,
+ fileOwner,
+ fileSize,
+ getChannelStatus,
+ getChannelVar,
+ getFileStatus,
+ getPathVar,
+ getWorkingDirectory, -- Too much like LibDirectory thing?
+ groupExecuteMode,
+ groupModes,
+ groupReadMode,
+ groupWriteMode,
+ intersectFileModes,
+ isBlockDevice,
+ isCharacterDevice,
+ isDirectory,
+ isNamedPipe,
+ isRegularFile,
+ linkCount,
+ modificationTime,
+ nullFileMode,
+ openDirStream,
+ openChannel,
+ otherExecuteMode,
+ otherModes,
+ otherReadMode,
+ otherWriteMode,
+ ownerExecuteMode,
+ ownerModes,
+ ownerReadMode,
+ ownerWriteMode,
+ queryAccess,
+ queryFile,
+ readDirStream,
+ removeDirectory, -- Too much like LibDirectory thing
+ removeLink,
+ rename,
+ rewindDirStream,
+ setFileCreationMask,
+ setFileTimes,
+ setGroupIDMode,
+ setOwnerAndGroup,
+ setFileMode,
+ setUserIDMode,
+ stdError,
+ stdFileMode,
+ stdInput,
+ stdOutput,
+ statusChangeTime,
+ touchFile,
+ unionFileModes
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+import LibDirectory ( removeDirectory, -- re-use its code
+ getCurrentDirectory,
+ setCurrentDirectory
+ )
+
+type DirStream = _Addr
+
+openDirStream :: FilePath -> IO DirStream
+openDirStream name =
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ opendir dir `thenPrimIO` \ dirp ->
+ if dirp /= ``NULL'' then
+ return dirp
+ else
+ syserr "openDirStream"
+
+readDirStream :: DirStream -> IO String
+readDirStream dirp =
+ setErrorCode noError >>
+ _ccall_ readdir dirp `thenPrimIO` \ dirent ->
+ if dirent /= (``NULL''::_Addr) then
+ _casm_ ``%r = ((struct dirent *)%0)->d_name;'' dirent
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ name ->
+ return name
+ else
+ getErrorCode >>= \ errno ->
+ if errno == noError then
+ failWith EOF
+ else
+ syserr "readDirStream"
+
+rewindDirStream :: DirStream -> IO ()
+rewindDirStream dirp =
+ _ccall_ rewinddir dirp `thenPrimIO` \ () ->
+ return ()
+
+closeDirStream :: DirStream -> IO ()
+closeDirStream dirp =
+ _ccall_ closedir dirp `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "closeDirStream"
+
+getWorkingDirectory :: IO FilePath
+getWorkingDirectory = getCurrentDirectory{-LibDirectory-}
+{- OLD:
+ _ccall_ getCurrentDirectory `thenPrimIO` \ str ->
+ if str /= ``NULL'' then
+ strcpy str `thenPrimIO` \ pwd ->
+ _ccall_ free str `thenPrimIO` \ () ->
+ return pwd
+ else
+ syserr "getWorkingDirectory"
+-}
+
+changeWorkingDirectory :: FilePath -> IO ()
+changeWorkingDirectory name = setCurrentDirectory{-LibDirectory-} name
+{- OLD:
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ chdir dir `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "changeWorkingDirectory"
+-}
+
+type FileMode = _Word
+
+nullFileMode :: FileMode
+nullFileMode = ``0''
+
+ownerReadMode :: FileMode
+ownerReadMode = ``S_IRUSR''
+
+ownerWriteMode :: FileMode
+ownerWriteMode = ``S_IWUSR''
+
+ownerExecuteMode :: FileMode
+ownerExecuteMode = ``S_IXUSR''
+
+groupReadMode :: FileMode
+groupReadMode = ``S_IRGRP''
+
+groupWriteMode :: FileMode
+groupWriteMode = ``S_IWGRP''
+
+groupExecuteMode :: FileMode
+groupExecuteMode = ``S_IXGRP''
+
+otherReadMode :: FileMode
+otherReadMode = ``S_IROTH''
+
+otherWriteMode :: FileMode
+otherWriteMode = ``S_IWOTH''
+
+otherExecuteMode :: FileMode
+otherExecuteMode = ``S_IXOTH''
+
+setUserIDMode :: FileMode
+setUserIDMode = ``S_ISUID''
+
+setGroupIDMode :: FileMode
+setGroupIDMode = ``S_ISGID''
+
+stdFileMode :: FileMode
+stdFileMode = ``(S_IRUSR|S_IWUSR|S_IRGRP|S_IWGRP|S_IROTH|S_IWOTH)''
+
+ownerModes :: FileMode
+ownerModes = ``S_IRWXU''
+
+groupModes :: FileMode
+groupModes = ``S_IRWXG''
+
+otherModes :: FileMode
+otherModes = ``S_IRWXO''
+
+accessModes :: FileMode
+accessModes = ``(S_IRWXU|S_IRWXG|S_IRWXO)''
+
+unionFileModes :: FileMode -> FileMode -> FileMode
+unionFileModes (W# m1#) (W# m2#) = W# (m1# `or#` m2#)
+
+intersectFileModes :: FileMode -> FileMode -> FileMode
+intersectFileModes (W# m1#) (W# m2#) = W# (m1# `and#` m2#)
+
+stdInput :: Channel
+stdInput = 0
+
+stdOutput :: Channel
+stdOutput = 1
+
+stdError :: Channel
+stdError = 2
+
+data OpenMode = ReadOnly
+ | WriteOnly
+ | ReadWrite
+
+openChannel :: FilePath
+ -> OpenMode
+ -> Maybe FileMode -- Just x => O_CREAT, Nothing => must exist
+ -> Bool -- O_APPEND
+ -> Bool -- O_EXCL
+ -> Bool -- O_NOCTTY
+ -> Bool -- O_NONBLOCK
+ -> Bool -- O_TRUNC
+ -> IO Channel
+openChannel name how maybe_mode append excl noctty nonblock trunc =
+ _packBytesForCST name `thenStrictlyST` \ file ->
+ _ccall_ open file flags mode `thenPrimIO` \ fd ->
+ if fd /= -1 then
+ return fd
+ else
+ syserr "openChannel"
+ where
+ mode, creat :: FileMode
+ mode = case maybe_mode of { Nothing -> ``0'' ; Just x -> x }
+
+ creat = case maybe_mode of { Nothing -> ``0'' ; Just _ -> ``O_CREAT'' }
+ creat# = case creat of { W# x -> x }
+
+ flags = W# (creat# `or#` append# `or#` excl# `or#`
+ noctty# `or#` nonblock# `or#` trunc#)
+ append# = case (if append then ``O_APPEND'' else ``0'') of { W# x -> x }
+ excl# = case (if excl then ``O_EXCL'' else ``0'') of { W# x -> x }
+ noctty# = case (if noctty then ``O_NOCTTY'' else ``0'') of { W# x -> x }
+ nonblock# = case (if nonblock then ``O_NONBLOCK'' else ``0'') of { W# x -> x }
+ trunc# = case (if trunc then ``O_TRUNC'' else ``0'') of { W# x -> x }
+
+createFile :: FilePath -> FileMode -> IO Channel
+createFile name mode =
+ _packBytesForCST name `thenStrictlyST` \ file ->
+ _ccall_ creat file mode `thenPrimIO` \ fd ->
+ if fd /= -1 then
+ return fd
+ else
+ syserr "createFile"
+
+setFileCreationMask :: FileMode -> IO FileMode
+setFileCreationMask mask =
+ _ccall_ umask mask `thenPrimIO` \ omask ->
+ return omask
+
+createLink :: FilePath -> FilePath -> IO ()
+createLink name1 name2 =
+ _packBytesForCST name1 `thenStrictlyST` \ path1 ->
+ _packBytesForCST name2 `thenStrictlyST` \ path2 ->
+ _ccall_ link path1 path2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createLink"
+
+createDirectory :: FilePath -> FileMode -> IO ()
+createDirectory name mode = -- NB: diff signature from LibDirectory one!
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ mkdir dir mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createDirectory"
+
+createNamedPipe :: FilePath -> FileMode -> IO ()
+createNamedPipe name mode =
+ _packBytesForCST name `thenStrictlyST` \ pipe ->
+ _ccall_ mkfifo pipe mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "createNamedPipe"
+
+removeLink :: FilePath -> IO ()
+removeLink name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ unlink path `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeLink"
+
+{- USE LibDirectory ONE:
+removeDirectory :: FilePath -> IO ()
+removeDirectory name =
+ _packBytesForCST name `thenStrictlyST` \ dir ->
+ _ccall_ rmdir dir `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeDirectory"
+-}
+
+rename :: FilePath -> FilePath -> IO ()
+rename name1 name2 =
+ _packBytesForCST name1 `thenStrictlyST` \ path1 ->
+ _packBytesForCST name2 `thenStrictlyST` \ path2 ->
+ _ccall_ rename path1 path2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "rename"
+
+type FileStatus = _ByteArray ()
+type FileID = Int
+type DeviceID = Int
+
+fileMode :: FileStatus -> FileMode
+fileMode stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_mode;'' stat
+ `thenStrictlyST` \ mode ->
+ returnPrimIO mode)
+
+fileID :: FileStatus -> FileID
+fileID stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_ino;'' stat
+ `thenStrictlyST` \ ino ->
+ returnPrimIO ino)
+
+deviceID :: FileStatus -> DeviceID
+deviceID stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_dev;'' stat
+ `thenStrictlyST` \ dev ->
+ returnPrimIO dev)
+
+linkCount :: FileStatus -> LinkCount
+linkCount stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_nlink;'' stat
+ `thenStrictlyST` \ nlink ->
+ returnPrimIO nlink)
+
+fileOwner :: FileStatus -> UserID
+fileOwner stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_uid;'' stat
+ `thenStrictlyST` \ uid ->
+ returnPrimIO uid)
+
+fileGroup :: FileStatus -> GroupID
+fileGroup stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_gid;'' stat
+ `thenStrictlyST` \ gid ->
+ returnPrimIO gid)
+
+fileSize :: FileStatus -> FileOffset
+fileSize stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_size;'' stat
+ `thenStrictlyST` \ size ->
+ returnPrimIO size)
+
+accessTime :: FileStatus -> EpochTime
+accessTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_atime;'' stat
+ `thenStrictlyST` \ atime ->
+ returnPrimIO atime)
+
+modificationTime :: FileStatus -> EpochTime
+modificationTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_mtime;'' stat
+ `thenStrictlyST` \ mtime ->
+ returnPrimIO mtime)
+
+statusChangeTime :: FileStatus -> EpochTime
+statusChangeTime stat = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct stat *)%0)->st_ctime;'' stat
+ `thenStrictlyST` \ ctime ->
+ returnPrimIO ctime)
+
+isDirectory :: FileStatus -> Bool
+isDirectory stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISDIR(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isCharacterDevice :: FileStatus -> Bool
+isCharacterDevice stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISCHR(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isBlockDevice :: FileStatus -> Bool
+isBlockDevice stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISBLK(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isRegularFile :: FileStatus -> Bool
+isRegularFile stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISREG(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+isNamedPipe :: FileStatus -> Bool
+isNamedPipe stat = unsafePerformPrimIO (
+ _casm_ ``%r = S_ISFIFO(((struct stat *)%0)->st_mode);'' stat
+ `thenStrictlyST` \ rc ->
+ returnPrimIO (rc /= 0))
+
+getFileStatus :: FilePath -> IO FileStatus
+getFileStatus name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ allocChars ``sizeof(struct stat)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = stat(%0,(struct stat *)%1);'' path bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ stat ->
+ return stat
+ else
+ syserr "getFileStatus"
+
+getChannelStatus :: Channel -> IO FileStatus
+getChannelStatus fd =
+ allocChars ``sizeof(struct stat)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = fstat(%0,(struct stat *)%1);'' fd bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ stat ->
+ return stat
+ else
+ syserr "getChannelStatus"
+
+queryAccess :: FilePath -> Bool -> Bool -> Bool -> IO Bool
+queryAccess name read write exec =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ access path flags `thenPrimIO` \ rc ->
+ return (rc == 0)
+ where
+ flags = I# (word2Int# (read# `or#` write# `or#` exec#))
+ read# = case (if read then ``R_OK'' else ``0'') of { W# x -> x }
+ write# = case (if write then ``W_OK'' else ``0'') of { W# x -> x }
+ exec# = case (if exec then ``X_OK'' else ``0'') of { W# x -> x }
+
+queryFile :: FilePath -> IO Bool
+queryFile name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ access path (``F_OK''::Int) `thenPrimIO` \ rc ->
+ return (rc == 0)
+
+setFileMode :: FilePath -> FileMode -> IO ()
+setFileMode name mode =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ chmod path mode `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setFileMode"
+
+setOwnerAndGroup :: FilePath -> UserID -> GroupID -> IO ()
+setOwnerAndGroup name uid gid =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ chown path uid gid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setOwnerAndGroup"
+
+setFileTimes :: FilePath -> EpochTime -> EpochTime -> IO ()
+setFileTimes name atime mtime =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _casm_ ``do {struct utimbuf ub; ub.actime = (time_t) %0; ub.modtime = (time_t) %1;
+ %r = utime(%2, &ub);} while(0);'' atime mtime path
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setFileTimes"
+
+touchFile :: FilePath -> IO ()
+touchFile name =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ utime path (``NULL''::_Addr) `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "touchFile"
+
+data PathVar = LinkLimit
+ | InputLineLimit
+ | InputQueueLimit
+ | FileNameLimit
+ | PathNameLimit
+ | PipeBufferLimit
+ | SetOwnerAndGroupIsRestricted
+ | FileNamesAreNotTruncated
+
+getPathVar :: PathVar -> FilePath -> IO Limit
+getPathVar v name =
+ case v of
+ LinkLimit -> pathconf ``_PC_LINK_MAX''
+ InputLineLimit -> pathconf ``_PC_MAX_CANON''
+ InputQueueLimit -> pathconf ``_PC_MAX_INPUT''
+ FileNameLimit -> pathconf ``_PC_NAME_MAX''
+ PathNameLimit -> pathconf ``_PC_PATH_MAX''
+ PipeBufferLimit -> pathconf ``_PC_PIPE_BUF''
+ SetOwnerAndGroupIsRestricted -> pathconf ``_PC_CHOWN_RESTRICTED''
+ FileNamesAreNotTruncated -> pathconf ``_PC_NO_TRUNC''
+ where
+ pathconf :: Int -> IO Limit
+ pathconf n =
+ _packBytesForCST name `thenStrictlyST` \ path ->
+ _ccall_ pathconf path n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ getErrorCode >>= \ errno ->
+ if errno == invalidArgument then
+ failWith (NoSuchThing "no such path limit or option")
+ else
+ syserr "getPathVar"
+
+getChannelVar :: PathVar -> Channel -> IO Limit
+getChannelVar v fd =
+ case v of
+ LinkLimit -> fpathconf ``_PC_LINK_MAX''
+ InputLineLimit -> fpathconf ``_PC_MAX_CANON''
+ InputQueueLimit -> fpathconf ``_PC_MAX_INPUT''
+ FileNameLimit -> fpathconf ``_PC_NAME_MAX''
+ PathNameLimit -> fpathconf ``_PC_PATH_MAX''
+ PipeBufferLimit -> fpathconf ``_PC_PIPE_BUF''
+ SetOwnerAndGroupIsRestricted -> fpathconf ``_PC_CHOWN_RESTRICTED''
+ FileNamesAreNotTruncated -> fpathconf ``_PC_NO_TRUNC''
+ where
+ fpathconf :: Int -> IO Limit
+ fpathconf n =
+ _ccall_ fpathconf fd n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ getErrorCode >>= \ errno ->
+ if errno == invalidArgument then
+ failWith (NoSuchThing "no such path limit or option")
+ else
+ syserr "getPathVar"
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mc.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mg.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mp.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mr.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi b/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_mt.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_p.hi b/ghc/lib/haskell-1.3/LibPosixFiles_p.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_p.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixFiles_t.hi b/ghc/lib/haskell-1.3/LibPosixFiles_t.hi
new file mode 100644
index 0000000000..335aecc9a9
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixFiles_t.hi
@@ -0,0 +1,139 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixFiles where
+import LibDirectory(removeDirectory)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO.hi b/ghc/lib/haskell-1.3/LibPosixIO.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO.lhs b/ghc/lib/haskell-1.3/LibPosixIO.lhs
new file mode 100644
index 0000000000..c0b58c1117
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO.lhs
@@ -0,0 +1,258 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixIO]{Haskell 1.3 POSIX Input/Output Primitives}
+
+\begin{code}
+module LibPosixIO (
+ ChannelOption(..),
+ FileLock(..),
+ LockRequest(..),
+
+ closeChannel,
+ createPipe,
+ dupChannel,
+ dupChannelTo,
+ getLock,
+ queryChannelOption,
+ readChannel,
+ seekChannel,
+ setChannelOption,
+ setLock,
+ waitToSetLock,
+ writeChannel
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixUtil
+
+createPipe :: IO (Channel, Channel)
+createPipe =
+ allocChars ``(2*sizeof(int))'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = pipe((int *)%0);'' bytes `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ _casm_ ``%r = ((int *)%0)[0];'' bytes `thenPrimIO` \ wd ->
+ _casm_ ``%r = ((int *)%0)[1];'' bytes `thenPrimIO` \ rd ->
+ return (wd, rd)
+ else
+ syserr "createPipe"
+
+dupChannel :: Channel -> IO Channel
+dupChannel fd =
+ _ccall_ dup fd `thenPrimIO` \ fd2 ->
+ if fd2 /= -1 then
+ return fd2
+ else
+ syserr "dupChannel"
+
+dupChannelTo :: Channel -> Channel -> IO ()
+dupChannelTo fd1 fd2 =
+ _ccall_ dup2 fd1 fd2 `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "dupChannelTo"
+
+closeChannel :: Channel -> IO ()
+closeChannel fd =
+ _ccall_ close fd `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "closeChannel"
+
+readChannel :: Channel -> ByteCount -> IO (String, ByteCount)
+readChannel fd 0 = return ("", 0)
+readChannel fd nbytes =
+ allocChars nbytes `thenStrictlyST` \ bytes ->
+ _ccall_ read fd bytes nbytes `thenPrimIO` \ rc ->
+ case rc of
+ -1 -> syserr "readChannel"
+ 0 -> failWith EOF
+ n | n == nbytes ->
+ freeze bytes `thenStrictlyST` \ buf ->
+ return (_unpackPS (_unsafeByteArrayToPS buf n), n)
+ | otherwise ->
+ -- Let go of the excessively long ByteArray# by copying to a shorter one.
+ -- Maybe we need a new primitive, shrinkCharArray#?
+ allocChars n `thenPrimIO` \ bytes' ->
+ _casm_ ``do {I_ i; for(i = 0; i < %2; i++) ((B_)%0)[i] = ((B_)%1)[i];
+ } while(0);'' bytes' bytes n `thenPrimIO` \ () ->
+ freeze bytes' `thenStrictlyST` \ buf ->
+ return (_unpackPS (_unsafeByteArrayToPS buf n), n)
+
+writeChannel :: Channel -> String -> IO ByteCount
+writeChannel fd str =
+ _packBytesForCST str `thenPrimIO` \ buf ->
+ _ccall_ write fd buf (length str) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ syserr "writeChannel"
+
+data ChannelOption = AppendOnWrite
+ | CloseOnExec
+ | NonBlockingRead
+
+queryChannelOption :: ChannelOption -> Channel -> IO Bool
+queryChannelOption CloseOnExec fd =
+ _ccall_ fcntl fd (``F_GETFD''::Int) 0 `thenPrimIO` \ (I# flags#) ->
+ if flags# /=# -1# then
+ return ((int2Word# flags# `and#` fd_cloexec#) `neWord#` int2Word# 0#)
+ else
+ syserr "queryChannelOption"
+ where
+ fd_cloexec# = case (``FD_CLOEXEC'') of { W# x -> x }
+queryChannelOption other fd =
+ _ccall_ fcntl fd (``F_GETFL''::Int) 0 `thenPrimIO` \ (I# flags#) ->
+ if flags# >=# 0# then
+ return ((int2Word# flags# `and#` opt#) `neWord#` int2Word# 0#)
+ else
+ syserr "queryChannelOption"
+ where
+ opt# = case (
+ case other of
+ AppendOnWrite -> ``O_APPEND''
+ NonBlockingRead -> ``O_NONBLOCK'' ) of { W# x -> x }
+
+setChannelOption :: ChannelOption -> Bool -> Channel -> IO ()
+setChannelOption CloseOnExec val fd =
+ _ccall_ fcntl fd (``F_GETFD''::Int) 0 `thenPrimIO` \ flags ->
+ if flags /= -1 then
+ (if val then
+ _casm_ ``%r = fcntl(%0, F_SETFD, %1 | FD_CLOEXEC);'' fd flags
+ else
+ _casm_ ``%r = fcntl(%0, F_SETFD, %1 & ~FD_CLOEXEC);'' fd flags)
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ fail
+ else
+ fail
+ where
+ fail = syserr "setChannelOption"
+setChannelOption other val fd =
+ _ccall_ fcntl fd (``F_GETFL''::Int) 0 `thenPrimIO` \ flags ->
+ if flags >= 0 then
+ (if val then
+ _casm_ ``%r = fcntl(%0, F_SETFL, %1 | %2);'' fd flags opt
+ else
+ _casm_ ``%r = fcntl(%0, F_SETFL, %1 & ~(%2));'' fd flags opt)
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ fail
+ else
+ fail
+ where
+ fail = syserr "setChannelOption"
+ opt =
+ case other of
+ AppendOnWrite -> (``O_APPEND''::_Word)
+ NonBlockingRead -> (``O_NONBLOCK''::_Word)
+
+data LockRequest = ReadLock
+ | WriteLock
+ | Unlock
+
+type FileLock = (LockRequest, SeekMode, FileOffset, FileOffset)
+
+getLock :: Channel -> FileLock -> IO (Maybe (ProcessID, FileLock))
+getLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_GETLK''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ bytes2ProcessIDAndLock flock `thenPrimIO` \ result ->
+ return (maybeResult result)
+ else
+ syserr "getLock"
+ where
+ maybeResult (_, (Unlock, _, _, _)) = Nothing
+ maybeResult x = Just x
+
+setLock :: Channel -> FileLock -> IO ()
+setLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_SETLK''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "setLock"
+
+waitToSetLock :: Channel -> FileLock -> IO ()
+waitToSetLock fd lock =
+ lock2Bytes lock >>= \ flock ->
+ _ccall_ fcntl fd (``F_SETLKW''::Int) flock `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "waitToSetLock"
+
+seekChannel :: Channel -> SeekMode -> FileOffset -> IO FileOffset
+seekChannel fd mode offset =
+ _ccall_ lseek fd offset (mode2Int mode) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ syserr "seekChannel"
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Convert a Haskell SeekMode to an int
+
+mode2Int :: SeekMode -> Int
+mode2Int AbsoluteSeek = ``SEEK_SET''
+mode2Int RelativeSeek = ``SEEK_CUR''
+mode2Int SeekFromEnd = ``SEEK_END''
+
+-- Convert a Haskell FileLock to an flock structure
+
+lock2Bytes :: FileLock -> IO (_MutableByteArray _RealWorld ())
+lock2Bytes (kind, mode, start, len) =
+ allocChars ``sizeof(struct flock)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``do { struct flock *fl = (struct flock *)%0;
+ fl->l_type = %1; fl->l_whence = %2; fl->l_start = %3; fl->l_len = %4;
+ } while(0);'' bytes ltype (mode2Int mode) start len
+ `thenPrimIO` \ () ->
+ return bytes
+ where
+ ltype :: Int
+ ltype = case kind of
+ ReadLock -> ``F_RDLCK''
+ WriteLock -> ``F_WRLCK''
+ Unlock -> ``F_UNLCK''
+
+bytes2ProcessIDAndLock :: _MutableByteArray s () -> PrimIO (ProcessID, FileLock)
+bytes2ProcessIDAndLock bytes =
+ _casm_ ``%r = ((struct flock *)%0)->l_type;'' bytes
+ `thenPrimIO` \ ltype ->
+ _casm_ ``%r = ((struct flock *)%0)->l_whence;'' bytes
+ `thenPrimIO` \ lwhence ->
+ _casm_ ``%r = ((struct flock *)%0)->l_start;'' bytes
+ `thenPrimIO` \ lstart ->
+ _casm_ ``%r = ((struct flock *)%0)->l_len;'' bytes
+ `thenPrimIO` \ llen ->
+ _casm_ ``%r = ((struct flock *)%0)->l_pid;'' bytes
+ `thenPrimIO` \ lpid ->
+ returnPrimIO (lpid, (kind ltype, mode lwhence, lstart, llen))
+ where
+ kind :: Int -> LockRequest
+ kind x
+ | x == ``F_RDLCK'' = ReadLock
+ | x == ``F_WRLCK'' = WriteLock
+ | x == ``F_UNLCK'' = Unlock
+ mode :: Int -> SeekMode
+ mode x
+ | x == ``SEEK_SET'' = AbsoluteSeek
+ | x == ``SEEK_CUR'' = RelativeSeek
+ | x == ``SEEK_END'' = SeekFromEnd
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mc.hi b/ghc/lib/haskell-1.3/LibPosixIO_mc.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mc.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mg.hi b/ghc/lib/haskell-1.3/LibPosixIO_mg.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mg.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mp.hi b/ghc/lib/haskell-1.3/LibPosixIO_mp.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mp.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mr.hi b/ghc/lib/haskell-1.3/LibPosixIO_mr.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mr.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_mt.hi b/ghc/lib/haskell-1.3/LibPosixIO_mt.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_mt.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_p.hi b/ghc/lib/haskell-1.3/LibPosixIO_p.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_p.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixIO_t.hi b/ghc/lib/haskell-1.3/LibPosixIO_t.hi
new file mode 100644
index 0000000000..6736ff11d2
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixIO_t.hi
@@ -0,0 +1,33 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixIO where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe, SeekMode)
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs b/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs
new file mode 100644
index 0000000000..76cb0ca9cb
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv.lhs
@@ -0,0 +1,325 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixProcEnv]{Haskell 1.3 POSIX Process Environment}
+
+\begin{code}
+module LibPosixProcEnv (
+ ProcessTimes(..),
+ SysVar(..),
+ SystemID(..),
+
+ childSystemTime,
+ childUserTime,
+ createProcessGroup,
+ createSession,
+ elapsedTime,
+ epochTime,
+ getControllingTerminalName,
+ getEffectiveGroupID,
+ getEffectiveUserID,
+ getEffectiveUserName,
+ getGroups,
+ getLoginName,
+ getParentProcessID,
+ getProcessGroupID,
+ getProcessID,
+ getProcessTimes,
+ getRealGroupID,
+ getRealUserID,
+ getSysVar,
+ getSystemID,
+ getTerminalName,
+ joinProcessGroup,
+ machine,
+ nodeName,
+ queryTerminal,
+ release,
+ setGroupID,
+ setProcessGroupID,
+ setUserID,
+ systemName,
+ systemTime,
+ userTime,
+ version
+ ) where
+
+import PreludeGlaST
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+getProcessID :: IO ProcessID
+getProcessID =
+ _ccall_ getpid `thenPrimIO` \ pid ->
+ return pid
+
+getParentProcessID :: IO ProcessID
+getParentProcessID =
+ _ccall_ getppid `thenPrimIO` \ ppid ->
+ return ppid
+
+getRealUserID :: IO UserID
+getRealUserID =
+ _ccall_ getuid `thenPrimIO` \ uid ->
+ return uid
+
+getEffectiveUserID :: IO UserID
+getEffectiveUserID =
+ _ccall_ geteuid `thenPrimIO` \ euid ->
+ return euid
+
+setUserID :: UserID -> IO ()
+setUserID uid =
+ _ccall_ setuid uid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setUserID"
+
+getLoginName :: IO String
+getLoginName =
+ _ccall_ getlogin `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ syserr "getLoginName"
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getRealGroupID :: IO GroupID
+getRealGroupID =
+ _ccall_ getgid `thenPrimIO` \ gid ->
+ return gid
+
+getEffectiveGroupID :: IO GroupID
+getEffectiveGroupID =
+ _ccall_ getegid `thenPrimIO` \ egid ->
+ return egid
+
+setGroupID :: GroupID -> IO ()
+setGroupID gid =
+ _ccall_ setgid gid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setGroupID"
+
+getGroups :: IO [GroupID]
+getGroups =
+ _ccall_ getgroups 0 (``NULL''::_Addr) `thenPrimIO` \ ngroups ->
+ allocWords ngroups `thenStrictlyST` \ words ->
+ _casm_ ``%r = getgroups(%0,(gid_t *)%1);'' ngroups words
+ `thenPrimIO` \ ngroups ->
+ if ngroups /= -1 then
+ freeze words `thenStrictlyST` \ arr ->
+ return (map (extract arr) [0..(ngroups-1)])
+ else
+ syserr "getGroups"
+ where
+ extract (_ByteArray _ barr#) (I# n#) =
+ case indexIntArray# barr# n# of
+ r# -> (I# r#)
+
+getEffectiveUserName :: IO String
+getEffectiveUserName =
+ _ccall_ cuserid (``NULL''::_Addr) `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ syserr "getEffectiveUserName"
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getProcessGroupID :: IO ProcessGroupID
+getProcessGroupID =
+ _ccall_ getpgrp `thenPrimIO` \ pgid ->
+ return pgid
+
+createProcessGroup :: ProcessID -> IO ProcessGroupID
+createProcessGroup pid =
+ _ccall_ setpgid pid 0 `thenPrimIO` \ pgid ->
+ if pgid == 0 then
+ return pgid
+ else
+ syserr "createProcessGroup"
+
+joinProcessGroup :: ProcessGroupID -> IO ()
+joinProcessGroup pgid =
+ _ccall_ setpgid 0 pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setProcessGroupID"
+
+setProcessGroupID :: ProcessID -> ProcessGroupID -> IO ()
+setProcessGroupID pid pgid =
+ _ccall_ setpgid pid pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setProcessGroupID"
+
+createSession :: IO ProcessGroupID
+createSession =
+ _ccall_ setsid `thenPrimIO` \ pgid ->
+ if pgid /= -1 then
+ return pgid
+ else
+ syserr "createSession"
+
+type SystemID = _ByteArray ()
+
+systemName :: SystemID -> String
+systemName sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->sysname;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ sysname ->
+ returnPrimIO sysname)
+
+nodeName :: SystemID -> String
+nodeName sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->nodename;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ nodename ->
+ returnPrimIO nodename)
+
+release :: SystemID -> String
+release sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->release;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ releaseStr ->
+ returnPrimIO releaseStr)
+
+version :: SystemID -> String
+version sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->version;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ versionStr ->
+ returnPrimIO versionStr)
+
+machine :: SystemID -> String
+machine sid = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct utsname *)%0)->machine;'' sid
+ `thenPrimIO` \ str ->
+ strcpy str `thenPrimIO` \ machine ->
+ returnPrimIO machine)
+
+getSystemID :: IO SystemID
+getSystemID =
+ allocChars (``sizeof(struct utsname)''::Int) `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = uname((struct utsname *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ freeze bytes `thenStrictlyST` \ sid ->
+ return sid
+ else
+ syserr "getSystemID"
+
+epochTime :: IO EpochTime
+epochTime =
+ _ccall_ time (``NULL''::_Addr) `thenPrimIO` \ secs ->
+ if secs /= -1 then
+ return secs
+ else
+ syserr "epochTime"
+
+-- All times in clock ticks (see getClockTick)
+
+type ProcessTimes = (ClockTick, _ByteArray ())
+
+elapsedTime :: ProcessTimes -> ClockTick
+elapsedTime (realtime, _) = realtime
+
+userTime :: ProcessTimes -> ClockTick
+userTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_utime;'' times
+ `thenStrictlyST` \ utime ->
+ returnPrimIO utime)
+
+systemTime :: ProcessTimes -> ClockTick
+systemTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_stime;'' times
+ `thenStrictlyST` \ stime ->
+ returnPrimIO stime)
+
+childUserTime :: ProcessTimes -> ClockTick
+childUserTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_cutime;'' times
+ `thenStrictlyST` \ cutime ->
+ returnPrimIO cutime)
+
+childSystemTime :: ProcessTimes -> ClockTick
+childSystemTime (_, times) = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct tms *)%0)->tms_cstime;'' times
+ `thenStrictlyST` \ cstime ->
+ returnPrimIO cstime)
+
+getProcessTimes :: IO ProcessTimes
+getProcessTimes =
+ allocChars (``sizeof(struct tms)''::Int) `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = times((struct tms *)%0);'' bytes `thenPrimIO` \ elapsed ->
+ if elapsed /= -1 then
+ freeze bytes `thenStrictlyST` \ times ->
+ return (elapsed, times)
+ else
+ syserr "getProcessTimes"
+
+getControllingTerminalName :: IO FilePath
+getControllingTerminalName =
+ _ccall_ ctermid (``NULL''::_Addr) `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ failWith (NoSuchThing "no controlling terminal")
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+getTerminalName :: Channel -> IO FilePath
+getTerminalName fd =
+ _ccall_ ttyname fd `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ try (queryTerminal fd) >>=
+ either (\err -> syserr "getTerminalName")
+ (\succ -> if succ then failWith (NoSuchThing "terminal name")
+ else failWith (InappropriateType "not a terminal"))
+ else
+ strcpy str `thenPrimIO` \ name ->
+ return name
+
+queryTerminal :: Channel -> IO Bool
+queryTerminal fd =
+ _ccall_ isatty fd `thenPrimIO` \ rc ->
+ case rc of
+ -1 -> syserr "queryTerminal"
+ 0 -> return False
+ 1 -> return True
+
+data SysVar = ArgumentLimit
+ | ChildLimit
+ | ClockTick
+ | GroupLimit
+ | OpenFileLimit
+ | PosixVersion
+ | HasSavedIDs
+ | HasJobControl
+
+getSysVar :: SysVar -> IO Limit
+getSysVar v =
+ case v of
+ ArgumentLimit -> sysconf ``_SC_ARG_MAX''
+ ChildLimit -> sysconf ``_SC_CHILD_MAX''
+ ClockTick -> sysconf ``_SC_CLK_TCK''
+ GroupLimit -> sysconf ``_SC_NGROUPS_MAX''
+ OpenFileLimit -> sysconf ``_SC_OPEN_MAX''
+ PosixVersion -> sysconf ``_SC_VERSION''
+ HasSavedIDs -> sysconf ``_SC_SAVED_IDS''
+ HasJobControl -> sysconf ``_SC_JOB_CONTROL''
+ where
+ sysconf :: Int -> IO Limit
+ sysconf n =
+ _ccall_ sysconf n `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return rc
+ else
+ failWith (NoSuchThing "no such system limit or option")
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mc.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mg.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mp.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mr.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_mt.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_p.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi b/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi
new file mode 100644
index 0000000000..9051c67931
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcEnv_t.hi
@@ -0,0 +1,75 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcEnv where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs b/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs
new file mode 100644
index 0000000000..9c0a2dcd05
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim.lhs
@@ -0,0 +1,543 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixProcPrim]{Haskell 1.3 POSIX Process Primitives}
+
+\begin{code}
+module LibPosixProcPrim (
+ Handler(..),
+ SignalSet(..),
+ Signal(..),
+ ProcessStatus(..),
+
+ addSignal,
+ awaitSignal,
+ backgroundRead,
+ backgroundWrite,
+ blockSignals,
+ continueProcess,
+ deleteSignal,
+ emptySignalSet,
+ executeFile,
+ exitImmediately,
+ floatingPointException,
+ forkProcess,
+ fullSignalSet,
+ getAnyProcessStatus,
+ getEnvVar,
+ getEnvironment,
+ getGroupProcessStatus,
+ getPendingSignals,
+ getProcessStatus,
+ getSignalMask,
+ illegalInstruction,
+ inSignalSet,
+ installHandler,
+ internalAbort,
+ keyboardSignal,
+ keyboardStop,
+ keyboardTermination,
+ killProcess,
+ lostConnection,
+ nullSignal,
+ openEndedPipe,
+ processStatusChanged,
+ queryStoppedChildFlag,
+ raiseSignal,
+ realTimeAlarm,
+ removeEnvVar,
+ scheduleAlarm,
+ segmentationViolation,
+ setEnvVar,
+ setEnvironment,
+ setSignalMask,
+ setStoppedChildFlag,
+ sigABRT,
+ sigALRM,
+ sigCHLD,
+ sigCONT,
+ sigFPE,
+ sigHUP,
+ sigILL,
+ sigINT,
+ sigKILL,
+ sigPIPE,
+ sigProcMask,
+ sigQUIT,
+ sigSEGV,
+ sigSTOP,
+ sigSetSize,
+ sigTERM,
+ sigTSTP,
+ sigTTIN,
+ sigTTOU,
+ sigUSR1,
+ sigUSR2,
+ signalProcess,
+ signalProcessGroup,
+ sleep,
+ softwareStop,
+ softwareTermination,
+ unBlockSignals,
+ userDefinedSignal1,
+ userDefinedSignal2,
+
+ ExitCode
+
+ ) where
+
+import PreludeGlaMisc
+import PreludeGlaST
+import PreludeStdIO
+import PS
+
+import LibPosixErr
+import LibPosixUtil
+
+import LibSystem(ExitCode(..))
+import LibPosixProcEnv (getProcessID)
+
+forkProcess :: IO (Maybe ProcessID)
+forkProcess =
+ _ccall_ fork `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "forkProcess"
+ 0 -> return Nothing
+ _ -> return (Just pid)
+
+executeFile :: FilePath -- Command
+ -> Bool -- Search PATH?
+ -> [String] -- Arguments
+ -> Maybe [(String, String)] -- Environment
+ -> IO ()
+executeFile path search args Nothing =
+ _packBytesForCST path `thenStrictlyST` \ prog ->
+ vectorize (basename path:args) `thenPrimIO` \ argv ->
+ (if search then
+ _casm_ ``%r = execvp(%0,(char **)%1);'' prog argv
+ else
+ _casm_ ``%r = execv(%0,(char **)%1);'' prog argv
+ ) `thenPrimIO` \ rc ->
+ syserr "executeFile"
+
+executeFile path search args (Just env) =
+ _packBytesForCST path `thenStrictlyST` \ prog ->
+ vectorize (basename path:args) `thenPrimIO` \ argv ->
+ vectorize (map (\ (name, val) -> name ++ ('=' : val)) env)
+ `thenPrimIO` \ envp ->
+ (if search then
+ _casm_ ``%r = execvpe(%0,(char **)%1,(char **)%2);'' prog argv envp
+ else
+ _casm_ ``%r = execve(%0,(char **)%1,(char **)%2);'' prog argv envp
+ ) `thenPrimIO` \ rc ->
+ syserr "executeFile"
+
+data ProcessStatus = Exited ExitCode
+ | Terminated Signal
+ | Stopped Signal
+{- mattson -} deriving (Eq, Ord, Text)
+
+getProcessStatus :: Bool -> Bool -> ProcessID -> IO (Maybe ProcessStatus)
+getProcessStatus block stopped pid =
+ allocWords 1 `thenPrimIO` \ wstat ->
+ _casm_ ``%r = waitpid(%0, (int *)%1, %2);'' pid wstat (waitOptions block stopped)
+ `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "getProcessStatus"
+ 0 -> return Nothing
+ _ -> decipherWaitStatus wstat `thenPrimIO` \ ps ->
+ return (Just ps)
+
+getGroupProcessStatus :: Bool
+ -> Bool
+ -> ProcessGroupID
+ -> IO (Maybe (ProcessID, ProcessStatus))
+getGroupProcessStatus block stopped pgid =
+ allocWords 1 `thenPrimIO` \ wstat ->
+ _casm_ ``%r = waitpid(%0, (int *)%1, %2);'' (-pgid) wstat (waitOptions block stopped)
+ `thenPrimIO` \ pid ->
+ case pid of
+ -1 -> syserr "getGroupProcessStatus"
+ 0 -> return Nothing
+ _ -> decipherWaitStatus wstat `thenPrimIO` \ ps ->
+ return (Just (pid, ps))
+
+getAnyProcessStatus :: Bool -> Bool -> IO (Maybe (ProcessID, ProcessStatus))
+getAnyProcessStatus block stopped =
+ getGroupProcessStatus block stopped 1 `handle`
+ \ err -> syserr "getAnyProcessStatus"
+
+exitImmediately :: ExitCode -> IO ()
+exitImmediately exitcode =
+ _ccall_ _exit (exitcode2Int exitcode) `thenPrimIO` \ () ->
+ syserr "exitImmediately"
+ where
+ exitcode2Int ExitSuccess = 0
+ exitcode2Int (ExitFailure n) = n
+
+getEnvironment :: IO [(String, String)]
+getEnvironment =
+ unvectorize ``environ'' 0 `thenPrimIO` \ env ->
+ return (map (split "") env)
+ where
+ split :: String -> String -> (String, String)
+ split x ('=' : xs) = (reverse x, xs)
+ split x (c:cs) = split (c:x) cs
+
+setEnvironment :: [(String, String)] -> IO ()
+setEnvironment pairs =
+ vectorize (map (\ (var,val) -> var ++ ('=' : val)) pairs)
+ `thenPrimIO` \ env ->
+ _casm_ ``%r = setenviron((char **)%0);'' env `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setEnvironment"
+
+getEnvVar :: String -> IO String
+getEnvVar name =
+ _packBytesForCST name `thenStrictlyST` \ str ->
+ _ccall_ getenv str `thenPrimIO` \ str ->
+ if str == ``NULL'' then
+ failWith (NoSuchThing "no such environment variable")
+ else
+ strcpy str `thenPrimIO` \ env ->
+ return env
+
+setEnvVar :: String -> String -> IO ()
+setEnvVar name value =
+ _packBytesForCST (name ++ ('=' : value)) `thenStrictlyST` \ str ->
+ _ccall_ setenv str `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setEnvVar"
+
+removeEnvVar :: String -> IO ()
+removeEnvVar name =
+ _packBytesForCST name `thenStrictlyST` \ str ->
+ _ccall_ delenv str `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "removeEnvVar"
+
+type Signal = Int
+
+nullSignal :: Signal
+nullSignal = 0
+
+backgroundRead, sigTTIN :: Signal
+backgroundRead = ``SIGTTIN''
+sigTTIN = ``SIGTTIN''
+
+backgroundWrite, sigTTOU :: Signal
+backgroundWrite = ``SIGTTOU''
+sigTTOU = ``SIGTTOU''
+
+continueProcess, sigCONT :: Signal
+continueProcess = ``SIGCONT''
+sigCONT = ``SIGCONT''
+
+floatingPointException, sigFPE :: Signal
+floatingPointException = ``SIGFPE''
+sigFPE = ``SIGFPE''
+
+illegalInstruction, sigILL :: Signal
+illegalInstruction = ``SIGILL''
+sigILL = ``SIGILL''
+
+internalAbort, sigABRT ::Signal
+internalAbort = ``SIGABRT''
+sigABRT = ``SIGABRT''
+
+keyboardSignal, sigINT :: Signal
+keyboardSignal = ``SIGINT''
+sigINT = ``SIGINT''
+
+keyboardStop, sigTSTP :: Signal
+keyboardStop = ``SIGTSTP''
+sigTSTP = ``SIGTSTP''
+
+keyboardTermination, sigQUIT :: Signal
+keyboardTermination = ``SIGQUIT''
+sigQUIT = ``SIGQUIT''
+
+killProcess, sigKILL :: Signal
+killProcess = ``SIGKILL''
+sigKILL = ``SIGKILL''
+
+lostConnection, sigHUP :: Signal
+lostConnection = ``SIGHUP''
+sigHUP = ``SIGHUP''
+
+openEndedPipe, sigPIPE :: Signal
+openEndedPipe = ``SIGPIPE''
+sigPIPE = ``SIGPIPE''
+
+processStatusChanged, sigCHLD :: Signal
+processStatusChanged = ``SIGCHLD''
+sigCHLD = ``SIGCHLD''
+
+realTimeAlarm, sigALRM :: Signal
+realTimeAlarm = ``SIGALRM''
+sigALRM = ``SIGALRM''
+
+segmentationViolation, sigSEGV :: Signal
+segmentationViolation = ``SIGSEGV''
+sigSEGV = ``SIGSEGV''
+
+softwareStop, sigSTOP :: Signal
+softwareStop = ``SIGSTOP''
+sigSTOP = ``SIGSTOP''
+
+softwareTermination, sigTERM :: Signal
+softwareTermination = ``SIGTERM''
+sigTERM = ``SIGTERM''
+
+userDefinedSignal1, sigUSR1 :: Signal
+userDefinedSignal1 = ``SIGUSR1''
+sigUSR1 = ``SIGUSR1''
+
+userDefinedSignal2, sigUSR2 :: Signal
+userDefinedSignal2 = ``SIGUSR2''
+sigUSR2 = ``SIGUSR2''
+
+signalProcess :: Signal -> ProcessID -> IO ()
+signalProcess int pid =
+ _ccall_ kill pid int `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "signalProcess"
+
+raiseSignal :: Signal -> IO ()
+raiseSignal int = getProcessID >>= signalProcess int
+
+signalProcessGroup :: Signal -> ProcessGroupID -> IO ()
+signalProcessGroup int pgid = signalProcess int (-pgid)
+
+setStoppedChildFlag :: Bool -> IO Bool
+setStoppedChildFlag b =
+ _casm_ ``%r = nocldstop; nocldstop = %0;'' x `thenPrimIO` \ rc ->
+ return (rc == 0)
+ where
+ x = case b of {True -> 0; False -> 1}
+
+queryStoppedChildFlag :: IO Bool
+queryStoppedChildFlag =
+ _casm_ ``%r = nocldstop;'' `thenPrimIO` \ rc ->
+ return (rc == 0)
+
+data Handler = Default
+ | Ignore
+ | Catch (IO ())
+
+type SignalSet = _ByteArray ()
+
+sigSetSize :: Int
+sigSetSize = ``sizeof(sigset_t)''
+
+emptySignalSet :: SignalSet
+emptySignalSet = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``(void) sigemptyset((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ sigset ->
+ returnPrimIO sigset
+ )
+
+fullSignalSet :: SignalSet
+fullSignalSet = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``(void) sigfillset((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ sigset ->
+ returnPrimIO sigset
+ )
+
+addSignal :: Signal -> SignalSet -> SignalSet
+addSignal int oldset = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``*(sigset_t *)%0 = *(sigset_t *)%1; (void) sigaddset((sigset_t *)%0, %2);''
+ bytes oldset int `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ newset ->
+ returnPrimIO newset
+ )
+
+inSignalSet :: Signal -> SignalSet -> Bool
+inSignalSet int sigset = unsafePerformPrimIO (
+ _casm_ ``%r = sigismember((sigset_t *)%0, %1);'' sigset int
+ `thenPrimIO` \ rc ->
+ if rc == 1 then
+ returnPrimIO True
+ else
+ returnPrimIO False
+ )
+
+deleteSignal :: Signal -> SignalSet -> SignalSet
+deleteSignal int oldset = unsafePerformPrimIO (
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``*(sigset_t *)%0 = *(sigset_t *)%1; (void) sigdelset((sigset_t *)%0, %2);''
+ bytes oldset int `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ newset ->
+ returnPrimIO newset
+ )
+
+installHandler :: Signal
+ -> Handler
+ -> Maybe SignalSet -- other signals to block
+ -> IO Handler -- old handler
+
+#ifdef __PARALLEL_HASKELL__
+installHandler = error "installHandler: not available for Parallel Haskell"
+#else
+installHandler int handler maybe_mask = (
+ case handler of
+ Default -> _ccall_ stg_sig_ignore int mask
+ Ignore -> _ccall_ stg_sig_default int mask
+ Catch m ->
+ makeStablePtr (wrap m) `thenPrimIO` \ sptr ->
+ _ccall_ stg_sig_catch int sptr mask
+ )
+ `thenPrimIO` \ rc ->
+ if rc >= 0 then
+ _casm_ ``%r = (StgStablePtr) (%0);'' rc `thenPrimIO` \ osptr ->
+ deRefStablePtr osptr `thenPrimIO` \ m ->
+ return (Catch m)
+ else if rc == ``STG_SIG_DFL'' then
+ return Default
+ else if rc == ``STG_SIG_IGN'' then
+ return Ignore
+ else
+ syserr "installHandler"
+ where
+ mask = case maybe_mask of
+ Nothing -> emptySignalSet
+ Just x -> x
+ wrap :: IO () -> PrimIO ()
+ wrap m s =
+ case (m s) of
+ (result, s2@(S# _)) ->
+ case result of
+ Right () -> ( (), s2 )
+ Left err -> error ("I/O error: "++shows err "\n")
+
+#endif {-!__PARALLEL_HASKELL__-}
+
+getSignalMask :: IO SignalSet
+getSignalMask =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigprocmask(0, NULL, (sigset_t *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ sigset ->
+ return sigset
+ else
+ syserr "getSignalMask"
+
+sigProcMask :: String -> Int -> SignalSet -> IO SignalSet
+sigProcMask name how sigset =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigprocmask(%0, (sigset_t *)%1, (sigset_t *)%2);'' how sigset bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ oldset ->
+ return oldset
+ else
+ syserr name
+
+setSignalMask :: SignalSet -> IO SignalSet
+setSignalMask = sigProcMask "setSignalMask" ``SIG_SETMASK''
+
+blockSignals :: SignalSet -> IO SignalSet
+blockSignals = sigProcMask "blockSignals" ``SIG_BLOCK''
+
+unBlockSignals :: SignalSet -> IO SignalSet
+unBlockSignals = sigProcMask "unBlockSignals" ``SIG_UNBLOCK''
+
+getPendingSignals :: IO SignalSet
+getPendingSignals =
+ allocChars sigSetSize `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = sigpending((sigset_t *)%0);'' bytes
+ `thenPrimIO` \ rc ->
+ if rc == 0 then
+ freeze bytes `thenStrictlyST` \ sigset ->
+ return sigset
+ else
+ syserr "getPendingSignals"
+
+awaitSignal :: Maybe SignalSet -> IO ()
+awaitSignal maybe_sigset =
+ pause `thenPrimIO` \ () ->
+ getErrorCode >>= \ err ->
+ if err == interruptedOperation then
+ return ()
+ else
+ syserr "awaitSignal"
+ where
+ pause :: PrimIO ()
+ pause =
+ case maybe_sigset of
+ Nothing -> _casm_ ``(void) pause();''
+ Just sigset -> _casm_ ``(void) sigsuspend((sigset_t *)%0);'' sigset
+
+scheduleAlarm :: Int -> IO Int
+scheduleAlarm (I# secs#) =
+ _ccall_ alarm (W# (int2Word# secs#)) `thenPrimIO` \ (W# w#) ->
+ return (I# (word2Int# w#))
+
+sleep :: Int -> IO ()
+sleep 0 = return ()
+sleep (I# secs#) =
+ _ccall_ sleep (W# (int2Word# secs#)) `seqPrimIO`
+ return ()
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Get the trailing component of a path
+
+basename :: String -> String
+basename "" = ""
+basename (c:cs)
+ | c == '/' = basename cs
+ | otherwise = c : basename cs
+
+-- Convert wait options to appropriate set of flags
+
+waitOptions :: Bool -> Bool -> Int
+-- block stopped
+waitOptions False False = ``WNOHANG''
+waitOptions False True = ``(WNOHANG|WUNTRACED)''
+waitOptions True False = 0
+waitOptions True True = ``WUNTRACED''
+
+-- Turn a (ptr to a) wait status into a ProcessStatus
+
+decipherWaitStatus :: _MutableByteArray s x -> PrimIO ProcessStatus
+decipherWaitStatus wstat =
+ _casm_ ``%r = WIFEXITED(*(int *)%0);'' wstat `thenPrimIO` \ exited ->
+ if exited /= 0 then
+ _casm_ ``%r = WEXITSTATUS(*(int *)%0);'' wstat
+ `thenPrimIO` \ exitstatus ->
+ if exitstatus == 0 then
+ returnPrimIO (Exited ExitSuccess)
+ else
+ returnPrimIO (Exited (ExitFailure exitstatus))
+ else
+ _casm_ ``%r = WIFSIGNALED(*(int *)%0);'' wstat
+ `thenPrimIO` \ signalled ->
+ if signalled /= 0 then
+ _casm_ ``%r = WTERMSIG(*(int *)%0);'' wstat
+ `thenPrimIO` \ termsig ->
+ returnPrimIO (Terminated termsig)
+ else
+ _casm_ ``%r = WSTOPSIG(*(int *)%0);'' wstat
+ `thenPrimIO` \ stopsig ->
+ returnPrimIO (Stopped stopsig)
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mc.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mg.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi
new file mode 100644
index 0000000000..866badf8c5
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mp.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 4 XXXX 6 \ (u0 :: Int) (u1 :: Handler) (u2 :: Maybe (_ByteArray ())) (u3 :: _State _RealWorld) -> _APP_ _TYAPP_ error { (Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)) } [ _NOREP_S_ "installHandler: not available for Parallel Haskell", u0, u1, u2, u3 ] _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mr.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_mt.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_p.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi b/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi
new file mode 100644
index 0000000000..b02e2ef1ab
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixProcPrim_t.hi
@@ -0,0 +1,193 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixProcPrim where
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY.hi b/ghc/lib/haskell-1.3/LibPosixTTY.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY.lhs b/ghc/lib/haskell-1.3/LibPosixTTY.lhs
new file mode 100644
index 0000000000..bfe833f5ef
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY.lhs
@@ -0,0 +1,578 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixTTY]{Haskell 1.3 POSIX Device-Specific Functions}
+
+\begin{code}
+module LibPosixTTY (
+ BaudRate(..),
+ ControlCharacter(..),
+ FlowAction(..),
+ QueueSelector(..),
+ TerminalAttributes(..),
+ TerminalMode(..),
+ TerminalState(..),
+ bitsPerByte,
+ controlChar,
+ controlFlow,
+ discardData,
+ drainOutput,
+ getTerminalAttributes,
+ getTerminalProcessGroupID,
+ inputSpeed,
+ inputTime,
+ minInput,
+ outputSpeed,
+ sendBreak,
+ setTerminalAttributes,
+ setTerminalProcessGroupID,
+ terminalMode,
+ withBits,
+ withCC,
+ withInputSpeed,
+ withMinInput,
+ withMode,
+ withOutputSpeed,
+ withTime,
+ withoutCC,
+ withoutMode
+ ) where
+
+import PreludeGlaST
+
+import LibPosixUtil
+
+type TerminalAttributes = _ByteArray ()
+
+data TerminalMode = InterruptOnBreak
+ | MapCRtoLF
+ | IgnoreBreak
+ | IgnoreCR
+ | IgnoreParityErrors
+ | MapLFtoCR
+ | CheckParity
+ | StripHighBit
+ | StartStopInput
+ | StartStopOutput
+ | MarkParityErrors
+ | ProcessOutput
+ | LocalMode
+ | ReadEnable
+ | TwoStopBits
+ | HangupOnClose
+ | EnableParity
+ | OddParity
+ | EnableEcho
+ | EchoErase
+ | EchoKill
+ | EchoLF
+ | ProcessInput
+ | ExtendedFunctions
+ | KeyboardInterrupts
+ | NoFlushOnInterrupt
+ | BackgroundWriteInterrupt
+
+withoutMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
+withoutMode termios InterruptOnBreak = clearInputFlag ``BRKINT'' termios
+withoutMode termios MapCRtoLF = clearInputFlag ``ICRNL'' termios
+withoutMode termios IgnoreBreak = clearInputFlag ``IGNBRK'' termios
+withoutMode termios IgnoreCR = clearInputFlag ``IGNCR'' termios
+withoutMode termios IgnoreParityErrors = clearInputFlag ``IGNPAR'' termios
+withoutMode termios MapLFtoCR = clearInputFlag ``INLCR'' termios
+withoutMode termios CheckParity = clearInputFlag ``INPCK'' termios
+withoutMode termios StripHighBit = clearInputFlag ``ISTRIP'' termios
+withoutMode termios StartStopInput = clearInputFlag ``IXOFF'' termios
+withoutMode termios StartStopOutput = clearInputFlag ``IXON'' termios
+withoutMode termios MarkParityErrors = clearInputFlag ``PARMRK'' termios
+withoutMode termios ProcessOutput = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_oflag &= ~OPOST;'' bytes termios
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+withoutMode termios LocalMode = clearControlFlag ``CLOCAL'' termios
+withoutMode termios ReadEnable = clearControlFlag ``CREAD'' termios
+withoutMode termios TwoStopBits = clearControlFlag ``CSTOPB'' termios
+withoutMode termios HangupOnClose = clearControlFlag ``HUPCL'' termios
+withoutMode termios EnableParity = clearControlFlag ``PARENB'' termios
+withoutMode termios OddParity = clearControlFlag ``PARODD'' termios
+withoutMode termios EnableEcho = clearLocalFlag ``ECHO'' termios
+withoutMode termios EchoErase = clearLocalFlag ``ECHOE'' termios
+withoutMode termios EchoKill = clearLocalFlag ``ECHOK'' termios
+withoutMode termios EchoLF = clearLocalFlag ``ECHONL'' termios
+withoutMode termios ProcessInput = clearLocalFlag ``ICANON'' termios
+withoutMode termios ExtendedFunctions = clearLocalFlag ``IEXTEN'' termios
+withoutMode termios KeyboardInterrupts = clearLocalFlag ``ISIG'' termios
+withoutMode termios NoFlushOnInterrupt = setLocalFlag ``NOFLSH'' termios
+withoutMode termios BackgroundWriteInterrupt = clearLocalFlag ``TOSTOP'' termios
+
+withMode :: TerminalAttributes -> TerminalMode -> TerminalAttributes
+withMode termios InterruptOnBreak = setInputFlag ``BRKINT'' termios
+withMode termios MapCRtoLF = setInputFlag ``ICRNL'' termios
+withMode termios IgnoreBreak = setInputFlag ``IGNBRK'' termios
+withMode termios IgnoreCR = setInputFlag ``IGNCR'' termios
+withMode termios IgnoreParityErrors = setInputFlag ``IGNPAR'' termios
+withMode termios MapLFtoCR = setInputFlag ``INLCR'' termios
+withMode termios CheckParity = setInputFlag ``INPCK'' termios
+withMode termios StripHighBit = setInputFlag ``ISTRIP'' termios
+withMode termios StartStopInput = setInputFlag ``IXOFF'' termios
+withMode termios StartStopOutput = setInputFlag ``IXON'' termios
+withMode termios MarkParityErrors = setInputFlag ``PARMRK'' termios
+withMode termios ProcessOutput = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_oflag |= OPOST;'' bytes termios
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+withMode termios LocalMode = setControlFlag ``CLOCAL'' termios
+withMode termios ReadEnable = setControlFlag ``CREAD'' termios
+withMode termios TwoStopBits = setControlFlag ``CSTOPB'' termios
+withMode termios HangupOnClose = setControlFlag ``HUPCL'' termios
+withMode termios EnableParity = setControlFlag ``PARENB'' termios
+withMode termios OddParity = setControlFlag ``PARODD'' termios
+withMode termios EnableEcho = setLocalFlag ``ECHO'' termios
+withMode termios EchoErase = setLocalFlag ``ECHOE'' termios
+withMode termios EchoKill = setLocalFlag ``ECHOK'' termios
+withMode termios EchoLF = setLocalFlag ``ECHONL'' termios
+withMode termios ProcessInput = setLocalFlag ``ICANON'' termios
+withMode termios ExtendedFunctions = setLocalFlag ``IEXTEN'' termios
+withMode termios KeyboardInterrupts = setLocalFlag ``ISIG'' termios
+withMode termios NoFlushOnInterrupt = clearLocalFlag ``NOFLSH'' termios
+withMode termios BackgroundWriteInterrupt = setLocalFlag ``TOSTOP'' termios
+
+terminalMode :: TerminalMode -> TerminalAttributes -> Bool
+terminalMode InterruptOnBreak = testInputFlag ``BRKINT''
+terminalMode MapCRtoLF = testInputFlag ``ICRNL''
+terminalMode IgnoreBreak = testInputFlag ``IGNBRK''
+terminalMode IgnoreCR = testInputFlag ``IGNCR''
+terminalMode IgnoreParityErrors = testInputFlag ``IGNPAR''
+terminalMode MapLFtoCR = testInputFlag ``INLCR''
+terminalMode CheckParity = testInputFlag ``INPCK''
+terminalMode StripHighBit = testInputFlag ``ISTRIP''
+terminalMode StartStopInput = testInputFlag ``IXOFF''
+terminalMode StartStopOutput = testInputFlag ``IXON''
+terminalMode MarkParityErrors = testInputFlag ``PARMRK''
+terminalMode ProcessOutput = \ termios -> unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_oflag & OPOST;'' termios
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+terminalMode LocalMode = testControlFlag ``CLOCAL''
+terminalMode ReadEnable = testControlFlag ``CREAD''
+terminalMode TwoStopBits = testControlFlag ``CSTOPB''
+terminalMode HangupOnClose = testControlFlag ``HUPCL''
+terminalMode EnableParity = testControlFlag ``PARENB''
+terminalMode OddParity = testControlFlag ``PARODD''
+terminalMode EnableEcho = testLocalFlag ``ECHO''
+terminalMode EchoErase = testLocalFlag ``ECHOE''
+terminalMode EchoKill = testLocalFlag ``ECHOK''
+terminalMode EchoLF = testLocalFlag ``ECHONL''
+terminalMode ProcessInput = testLocalFlag ``ICANON''
+terminalMode ExtendedFunctions = testLocalFlag ``IEXTEN''
+terminalMode KeyboardInterrupts = testLocalFlag ``ISIG''
+terminalMode NoFlushOnInterrupt = not . testLocalFlag ``NOFLSH''
+terminalMode BackgroundWriteInterrupt = testLocalFlag ``TOSTOP''
+
+bitsPerByte :: TerminalAttributes -> Int
+bitsPerByte termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cflag & CSIZE;'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Bits w))
+ where
+ word2Bits :: _Word -> Int
+ word2Bits x =
+ if x == ``CS5'' then 5
+ else if x == ``CS6'' then 6
+ else if x == ``CS7'' then 7
+ else if x == ``CS8'' then 8
+ else 0
+
+withBits :: TerminalAttributes -> Int -> TerminalAttributes
+withBits termios bits = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag =
+ (((struct termios *)%1)->c_cflag & ~CSIZE) | %2;''
+ bytes termios (mask bits) `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+ where
+ mask :: Int -> _Word
+ mask 5 = ``CS5''
+ mask 6 = ``CS6''
+ mask 7 = ``CS7''
+ mask 8 = ``CS8''
+ mask _ = error "withBits bit value out of range [5..8]"
+
+data ControlCharacter = EndOfFile
+ | EndOfLine
+ | Erase
+ | Interrupt
+ | Kill
+ | Quit
+ | Suspend
+ | Start
+ | Stop
+
+controlChar :: TerminalAttributes -> ControlCharacter -> Maybe Char
+controlChar termios cc = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[%1];'' termios (cc2Word cc)
+ `thenPrimIO` \ val ->
+ if val == ``_POSIX_VDISABLE'' then
+ returnPrimIO Nothing
+ else
+ returnPrimIO (Just (chr val)))
+
+withCC :: TerminalAttributes
+ -> (ControlCharacter, Char)
+ -> TerminalAttributes
+withCC termios (cc, c) = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[%2] = %3;''
+ bytes termios (cc2Word cc) c `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+withoutCC :: TerminalAttributes
+ -> ControlCharacter
+ -> TerminalAttributes
+withoutCC termios cc = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[%2] = _POSIX_VDISABLE;''
+ bytes termios (cc2Word cc) `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+inputTime :: TerminalAttributes -> Int
+inputTime termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[VTIME];'' termios
+ `thenPrimIO` \ count ->
+ returnPrimIO count)
+
+withTime :: TerminalAttributes -> Int -> TerminalAttributes
+withTime termios time = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[VTIME] = %2;'' bytes termios time
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+minInput :: TerminalAttributes -> Int
+minInput termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cc[VMIN];'' termios
+ `thenPrimIO` \ count ->
+ returnPrimIO count)
+
+withMinInput :: TerminalAttributes -> Int -> TerminalAttributes
+withMinInput termios count = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cc[VMIN] = %2;'' bytes termios count
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+data BaudRate = B0
+ | B50
+ | B75
+ | B110
+ | B134
+ | B150
+ | B200
+ | B300
+ | B600
+ | B1200
+ | B1800
+ | B2400
+ | B4800
+ | B9600
+ | B19200
+ | B38400
+
+inputSpeed :: TerminalAttributes -> BaudRate
+inputSpeed termios = unsafePerformPrimIO (
+ _casm_ ``%r = cfgetispeed((struct termios *)%0);'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Baud w))
+
+withInputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
+withInputSpeed termios br = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ cfsetispeed((struct termios *)%0, %2);'' bytes termios (baud2Word br)
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+outputSpeed :: TerminalAttributes -> BaudRate
+outputSpeed termios = unsafePerformPrimIO (
+ _casm_ ``%r = cfgetospeed((struct termios *)%0);'' termios
+ `thenPrimIO` \ w ->
+ returnPrimIO (word2Baud w))
+
+withOutputSpeed :: TerminalAttributes -> BaudRate -> TerminalAttributes
+withOutputSpeed termios br = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ cfsetospeed((struct termios *)%0, %2);'' bytes termios (baud2Word br)
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+getTerminalAttributes :: Channel -> IO TerminalAttributes
+getTerminalAttributes fd =
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``%r = tcgetattr(%0,(struct termios *)%1);'' fd bytes
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ freeze bytes `thenStrictlyST` \ termios ->
+ return termios
+ else
+ syserr "getTerminalAttributes"
+
+data TerminalState = Immediately
+ | WhenDrained
+ | WhenFlushed
+
+setTerminalAttributes :: Channel
+ -> TerminalAttributes
+ -> TerminalState
+ -> IO ()
+setTerminalAttributes fd termios state =
+ _casm_ ``%r = tcsetattr(%0,%1,(struct termios *)%2);'' fd (state2Int state) termios
+ `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "setTerminalAttributes"
+ where
+ state2Int :: TerminalState -> Int
+ state2Int Immediately = ``TCSANOW''
+ state2Int WhenDrained = ``TCSADRAIN''
+ state2Int WhenFlushed = ``TCSAFLUSH''
+
+sendBreak :: Channel -> Int -> IO ()
+sendBreak fd duration =
+ _ccall_ tcsendbreak fd duration `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "sendBreak"
+
+drainOutput :: Channel -> IO ()
+drainOutput fd =
+ _ccall_ tcdrain fd `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "drainOutput"
+
+data QueueSelector = InputQueue
+ | OutputQueue
+ | BothQueues
+
+discardData :: Channel -> QueueSelector -> IO ()
+discardData fd queue =
+ _ccall_ tcflush fd (queue2Int queue) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "discardData"
+ where
+ queue2Int :: QueueSelector -> Int
+ queue2Int InputQueue = ``TCIFLUSH''
+ queue2Int OutputQueue = ``TCOFLUSH''
+ queue2Int BothQueues = ``TCIOFLUSH''
+
+data FlowAction = SuspendOutput
+ | RestartOutput
+ | TransmitStop
+ | TransmitStart
+
+controlFlow :: Channel -> FlowAction -> IO ()
+controlFlow fd action =
+ _ccall_ tcflow fd (action2Int action) `thenPrimIO` \ rc ->
+ if rc /= -1 then
+ return ()
+ else
+ syserr "controlFlow"
+ where
+ action2Int :: FlowAction -> Int
+ action2Int SuspendOutput = ``TCOOFF''
+ action2Int RestartOutput = ``TCOON''
+ action2Int TransmitStop = ``TCIOFF''
+ action2Int TransmitStart = ``TCION''
+
+getTerminalProcessGroupID :: Channel -> IO ProcessGroupID
+getTerminalProcessGroupID fd =
+ _ccall_ tcgetpgrp fd `thenPrimIO` \ pgid ->
+ if pgid /= -1 then
+ return pgid
+ else
+ syserr "getTerminalProcessGroupID"
+
+setTerminalProcessGroupID :: Channel -> ProcessGroupID -> IO ()
+setTerminalProcessGroupID fd pgid =
+ _ccall_ tcsetpgrp fd pgid `thenPrimIO` \ rc ->
+ if rc == 0 then
+ return ()
+ else
+ syserr "setTerminalProcessGroupID"
+
+\end{code}
+
+Local utility functions
+
+\begin{code}
+
+-- Convert Haskell ControlCharacter to Int
+
+cc2Word :: ControlCharacter -> _Word
+cc2Word EndOfFile = ``VEOF''
+cc2Word EndOfLine = ``VEOL''
+cc2Word Erase = ``VERASE''
+cc2Word Interrupt = ``VINTR''
+cc2Word Kill = ``VKILL''
+cc2Word Quit = ``VQUIT''
+cc2Word Suspend = ``VSUSP''
+cc2Word Start = ``VSTART''
+cc2Word Stop = ``VSTOP''
+
+-- Convert Haskell BaudRate to unsigned integral type (_Word)
+
+baud2Word :: BaudRate -> _Word
+baud2Word B0 = ``B0''
+baud2Word B50 = ``B50''
+baud2Word B75 = ``B75''
+baud2Word B110 = ``B110''
+baud2Word B134 = ``B134''
+baud2Word B150 = ``B150''
+baud2Word B200 = ``B200''
+baud2Word B300 = ``B300''
+baud2Word B600 = ``B600''
+baud2Word B1200 = ``B1200''
+baud2Word B1800 = ``B1800''
+baud2Word B2400 = ``B2400''
+baud2Word B4800 = ``B4800''
+baud2Word B9600 = ``B9600''
+baud2Word B19200 = ``B19200''
+baud2Word B38400 = ``B38400''
+
+-- And convert a word back to a baud rate
+-- We really need some cpp macros here.
+
+word2Baud :: _Word -> BaudRate
+word2Baud x =
+ if x == ``B0'' then B0
+ else if x == ``B50'' then B50
+ else if x == ``B75'' then B75
+ else if x == ``B110'' then B110
+ else if x == ``B134'' then B134
+ else if x == ``B150'' then B150
+ else if x == ``B200'' then B200
+ else if x == ``B300'' then B300
+ else if x == ``B600'' then B600
+ else if x == ``B1200'' then B1200
+ else if x == ``B1800'' then B1800
+ else if x == ``B2400'' then B2400
+ else if x == ``B4800'' then B4800
+ else if x == ``B9600'' then B9600
+ else if x == ``B19200'' then B19200
+ else if x == ``B38400'' then B38400
+ else error "unknown baud rate"
+
+-- Clear termios i_flag
+
+clearInputFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearInputFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_iflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios i_flag
+
+setInputFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setInputFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_iflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios i_flag
+
+testInputFlag :: _Word -> TerminalAttributes -> Bool
+testInputFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_iflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+-- Clear termios c_flag
+
+clearControlFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearControlFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios c_flag
+
+setControlFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setControlFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_cflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios c_flag
+
+testControlFlag :: _Word -> TerminalAttributes -> Bool
+testControlFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_cflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+-- Clear termios l_flag
+
+clearLocalFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+clearLocalFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_lflag &= ~%2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Set termios l_flag
+
+setLocalFlag :: _Word -> TerminalAttributes -> TerminalAttributes
+setLocalFlag flag termios = unsafePerformPrimIO (
+ allocChars ``sizeof(struct termios)'' `thenStrictlyST` \ bytes ->
+ _casm_ ``*(struct termios *)%0 = *(struct termios *)%1;
+ ((struct termios *)%0)->c_lflag |= %2;'' bytes termios flag
+ `thenPrimIO` \ () ->
+ freeze bytes `thenStrictlyST` \ termios ->
+ returnPrimIO termios)
+
+-- Examine termios l_flag
+
+testLocalFlag :: _Word -> TerminalAttributes -> Bool
+testLocalFlag flag termios = unsafePerformPrimIO (
+ _casm_ ``%r = ((struct termios *)%0)->c_iflag & %1;'' termios flag
+ `thenPrimIO` \ (W# flags#) ->
+ returnPrimIO (flags# `neWord#` int2Word# 0#))
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mc.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mg.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mp.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mr.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi b/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_mt.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_p.hi b/ghc/lib/haskell-1.3/LibPosixTTY_p.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_p.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixTTY_t.hi b/ghc/lib/haskell-1.3/LibPosixTTY_t.hi
new file mode 100644
index 0000000000..80d19e9026
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixTTY_t.hi
@@ -0,0 +1,62 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixTTY where
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludeStdIO(Maybe)
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil.hi b/ghc/lib/haskell-1.3/LibPosixUtil.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil.lhs b/ghc/lib/haskell-1.3/LibPosixUtil.lhs
new file mode 100644
index 0000000000..340e443255
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil.lhs
@@ -0,0 +1,123 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibPosixUtil]{Haskell 1.3 POSIX utilities}
+
+\begin{code}
+
+module LibPosixUtil (
+ LibPosixUtil..,
+
+ _ByteArray,
+ _MutableByteArray,
+ _ST(..)
+
+ ) where
+
+import PreludeGlaST
+import PS
+
+\end{code}
+
+First, all of the major Posix data types, to avoid any recursive dependencies
+
+\begin{code}
+
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessID = Int
+type ProcessGroupID = ProcessID
+type UserID = Int
+
+\end{code}
+
+Now some local fucntions that shouldn't go outside this library.
+
+\begin{code}
+
+-- Fail with a SystemError. Normally, we do not try to re-interpret POSIX
+-- error numbers, so most routines in this file will only fail with SystemError.
+-- The only exceptions are (1) those routines where failure of some kind may be
+-- considered ``normal''...e.g. getpwnam() for a non-existent user, or (2) those
+-- routines which do not set errno.
+
+syserr :: String -> IO a
+syserr = failWith . SystemError
+
+-- Allocate a mutable array of characters with no indices.
+
+allocChars :: Int -> _ST s (_MutableByteArray s ())
+allocChars (I# size#) (S# s#) =
+ case newCharArray# size# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ where
+ bot = error "allocChars{LibPosix}"
+
+-- Allocate a mutable array of words with no indices
+
+allocWords :: Int -> _ST s (_MutableByteArray s ())
+allocWords (I# size#) (S# s#) =
+ case newIntArray# size# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ where
+ bot = error "allocWords{LibPosix}"
+
+-- Freeze these index-free mutable arrays
+
+freeze :: _MutableByteArray s () -> _ST s (_ByteArray ())
+freeze (_MutableByteArray ixs arr#) (S# s#) =
+ case unsafeFreezeByteArray# arr# s# of
+ StateAndByteArray# s2# frozen# -> (_ByteArray ixs frozen#, S# s2#)
+
+-- Copy a null-terminated string from outside the heap to
+-- Haskellized nonsense inside the heap
+
+strcpy :: _Addr -> PrimIO String
+strcpy str
+ | str == ``NULL'' = returnPrimIO ""
+ | otherwise =
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ ps ->
+ returnPrimIO (_unpackPS ps)
+
+-- Turn a string list into a NULL-terminated vector of null-terminated strings
+-- No indices...I hate indices. Death to Ix.
+
+vectorize :: [String] -> PrimIO (_ByteArray ())
+vectorize xs =
+ allocWords (len+1) `thenStrictlyST` \ arr ->
+ fill arr 0 xs `thenPrimIO` \ () ->
+ freeze arr `thenStrictlyST` \ frozen ->
+ returnPrimIO frozen
+
+ where
+ len :: Int
+ len = length xs
+
+ fill :: _MutableByteArray _RealWorld () -> Int -> [String] -> PrimIO ()
+ fill arr n [] =
+ _casm_ ``((PP_)%0)[%1] = NULL;'' arr n
+ fill arr n (x:xs) =
+ _packBytesForCST x `thenStrictlyST` \ barr ->
+ _casm_ ``((PP_)%0)[%1] = (P_)%2;'' arr n barr
+ `thenPrimIO` \ () ->
+ fill arr (n+1) xs
+
+-- Turn a NULL-terminated vector of null-terminated strings into a string list
+
+unvectorize :: _Addr -> Int -> PrimIO [String]
+unvectorize ptr n
+ | str == ``NULL'' = returnPrimIO []
+ | otherwise =
+ strcpy str `thenPrimIO` \ x ->
+ unvectorize ptr (n+1) `thenPrimIO` \ xs ->
+ returnPrimIO (x : xs)
+ where str = indexAddrOffAddr ptr n
+
+\end{code}
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mc.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mg.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mp.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mr.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi b/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_mt.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_p.hi b/ghc/lib/haskell-1.3/LibPosixUtil_p.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_p.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosixUtil_t.hi b/ghc/lib/haskell-1.3/LibPosixUtil_t.hi
new file mode 100644
index 0000000000..af4cf5cec6
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosixUtil_t.hi
@@ -0,0 +1,34 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosixUtil where
+import PreludeArray(_ByteArray)
+import PreludeGlaST(_MutableByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data _ByteArray a {-# GHC_PRAGMA _ByteArray (a, a) ByteArray# #-}
+data _MutableByteArray a b {-# GHC_PRAGMA _MutableByteArray (b, b) (MutableByteArray# a) #-}
+allocChars :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+allocWords :: Int -> _State a -> (_MutableByteArray a (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+freeze :: _MutableByteArray a () -> _State a -> (_ByteArray (), _State a)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(LP)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+strcpy :: _Addr -> _State _RealWorld -> ([Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+syserr :: [Char] -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+unvectorize :: _Addr -> Int -> _State _RealWorld -> ([[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+vectorize :: [[Char]] -> _State _RealWorld -> (_ByteArray (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mc.hi b/ghc/lib/haskell-1.3/LibPosix_mc.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mc.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mg.hi b/ghc/lib/haskell-1.3/LibPosix_mg.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mg.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mp.hi b/ghc/lib/haskell-1.3/LibPosix_mp.hi
new file mode 100644
index 0000000000..2019d507dc
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mp.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2222 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 4 XXXX 6 \ (u0 :: Int) (u1 :: Handler) (u2 :: Maybe (_ByteArray ())) (u3 :: _State _RealWorld) -> _APP_ _TYAPP_ error { (Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)) } [ _NOREP_S_ "installHandler: not available for Parallel Haskell", u0, u1, u2, u3 ] _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mr.hi b/ghc/lib/haskell-1.3/LibPosix_mr.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mr.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_mt.hi b/ghc/lib/haskell-1.3/LibPosix_mt.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_mt.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_p.hi b/ghc/lib/haskell-1.3/LibPosix_p.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_p.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibPosix_t.hi b/ghc/lib/haskell-1.3/LibPosix_t.hi
new file mode 100644
index 0000000000..a6ec46fc80
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibPosix_t.hi
@@ -0,0 +1,667 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibPosix where
+import LibDirectory(removeDirectory)
+import LibPosixDB(GroupEntry(..), UserEntry(..), getGroupEntryForID, getGroupEntryForName, getUserEntryForID, getUserEntryForName, groupID, groupMembers, groupName, homeDirectory, userGroupID, userID, userName, userShell)
+import LibPosixErr(ErrorCode(..), argumentListTooLong, badChannel, brokenPipe, directoryNotEmpty, e2BIG, eACCES, eAGAIN, eBADF, eBUSY, eCHILD, eDEADLK, eEXIST, eFBIG, eINTR, eINVAL, eIO, eISDIR, eMFILE, eMLINK, eNAMETOOLONG, eNFILE, eNODEV, eNOENT, eNOEXEC, eNOLCK, eNOMEM, eNOSPC, eNOSYS, eNOTDIR, eNOTEMPTY, eNOTTY, eNXIO, ePERM, ePIPE, eROFS, eSPIPE, eSRCH, eXDEV, execFormatError, fileAlreadyExists, fileTooLarge, filenameTooLong, getErrorCode, improperLink, inappropriateIOControlOperation, inputOutputError, interruptedOperation, invalidArgument, invalidSeek, isADirectory, noChildProcess, noError, noLocksAvailable, noSpaceLeftOnDevice, noSuchDeviceOrAddress, noSuchFileOrDirectory, noSuchOperationOnDevice, noSuchProcess, notADirectory, notEnoughMemory, operationNotImplemented, operationNotPermitted, permissionDenied, readOnlyFileSystem, resourceBusy, resourceDeadlockAvoided, resourceTemporarilyUnavailable, setErrorCode, tooManyLinks, tooManyOpenFiles, tooManyOpenFilesInSystem)
+import LibPosixFiles(DeviceID(..), DirStream(..), FileID(..), FileMode(..), FileStatus(..), OpenMode(..), PathVar(..), accessModes, accessTime, changeWorkingDirectory, closeDirStream, createDirectory, createFile, createLink, createNamedPipe, deviceID, fileGroup, fileID, fileMode, fileOwner, fileSize, getChannelStatus, getChannelVar, getFileStatus, getPathVar, getWorkingDirectory, groupExecuteMode, groupModes, groupReadMode, groupWriteMode, intersectFileModes, isBlockDevice, isCharacterDevice, isDirectory, isNamedPipe, isRegularFile, linkCount, modificationTime, nullFileMode, openChannel, openDirStream, otherExecuteMode, otherModes, otherReadMode, otherWriteMode, ownerExecuteMode, ownerModes, ownerReadMode, ownerWriteMode, queryAccess, queryFile, readDirStream, removeLink, rename, rewindDirStream, setFileCreationMask, setFileMode, setFileTimes, setGroupIDMode, setOwnerAndGroup, setUserIDMode, statusChangeTime, stdError, stdFileMode, stdInput, stdOutput, touchFile, unionFileModes)
+import LibPosixIO(ChannelOption(..), FileLock(..), LockRequest(..), closeChannel, createPipe, dupChannel, dupChannelTo, getLock, queryChannelOption, readChannel, seekChannel, setChannelOption, setLock, waitToSetLock, writeChannel)
+import LibPosixProcEnv(ProcessTimes(..), SysVar(..), SystemID(..), childSystemTime, childUserTime, createProcessGroup, createSession, elapsedTime, epochTime, getControllingTerminalName, getEffectiveGroupID, getEffectiveUserID, getEffectiveUserName, getGroups, getLoginName, getParentProcessID, getProcessGroupID, getProcessID, getProcessTimes, getRealGroupID, getRealUserID, getSysVar, getSystemID, getTerminalName, joinProcessGroup, machine, nodeName, queryTerminal, release, setGroupID, setProcessGroupID, setUserID, systemName, systemTime, userTime, version)
+import LibPosixProcPrim(Handler(..), ProcessStatus(..), Signal(..), SignalSet(..), addSignal, awaitSignal, backgroundRead, backgroundWrite, blockSignals, continueProcess, deleteSignal, emptySignalSet, executeFile, exitImmediately, floatingPointException, forkProcess, fullSignalSet, getAnyProcessStatus, getEnvVar, getEnvironment, getGroupProcessStatus, getPendingSignals, getProcessStatus, getSignalMask, illegalInstruction, inSignalSet, installHandler, internalAbort, keyboardSignal, keyboardStop, keyboardTermination, killProcess, lostConnection, nullSignal, openEndedPipe, processStatusChanged, queryStoppedChildFlag, raiseSignal, realTimeAlarm, removeEnvVar, scheduleAlarm, segmentationViolation, setEnvVar, setEnvironment, setSignalMask, setStoppedChildFlag, sigABRT, sigALRM, sigCHLD, sigCONT, sigFPE, sigHUP, sigILL, sigINT, sigKILL, sigPIPE, sigProcMask, sigQUIT, sigSEGV, sigSTOP, sigSetSize, sigTERM, sigTSTP, sigTTIN, sigTTOU, sigUSR1, sigUSR2, signalProcess, signalProcessGroup, sleep, softwareStop, softwareTermination, unBlockSignals, userDefinedSignal1, userDefinedSignal2)
+import LibPosixTTY(BaudRate(..), ControlCharacter(..), FlowAction(..), QueueSelector(..), TerminalAttributes(..), TerminalMode(..), TerminalState(..), bitsPerByte, controlChar, controlFlow, discardData, drainOutput, getTerminalAttributes, getTerminalProcessGroupID, inputSpeed, inputTime, minInput, outputSpeed, sendBreak, setTerminalAttributes, setTerminalProcessGroupID, terminalMode, withBits, withCC, withInputSpeed, withMinInput, withMode, withOutputSpeed, withTime, withoutCC, withoutMode)
+import LibPosixUtil(ByteCount(..), Channel(..), ClockTick(..), EpochTime(..), FileOffset(..), GroupID(..), Limit(..), LinkCount(..), ProcessGroupID(..), ProcessID(..), UserID(..))
+import LibSystem(ExitCode)
+import PreludeArray(_ByteArray)
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+import PreludePrimIO(_MVar)
+import PreludeStdIO(Maybe, SeekMode, _Handle)
+data GroupEntry {-# GHC_PRAGMA GE [Char] Int [[Char]] #-}
+data UserEntry {-# GHC_PRAGMA UE [Char] Int Int [Char] [Char] #-}
+type ErrorCode = Int
+type DeviceID = Int
+type DirStream = _Addr
+type FileID = Int
+type FileMode = _Word
+type FileStatus = _ByteArray ()
+data OpenMode = ReadOnly | WriteOnly | ReadWrite
+data PathVar = LinkLimit | InputLineLimit | InputQueueLimit | FileNameLimit | PathNameLimit | PipeBufferLimit | SetOwnerAndGroupIsRestricted | FileNamesAreNotTruncated
+data ChannelOption = AppendOnWrite | CloseOnExec | NonBlockingRead
+type FileLock = (LockRequest, SeekMode, Int, Int)
+data LockRequest = ReadLock | WriteLock | Unlock
+type ProcessTimes = (Int, _ByteArray ())
+data SysVar = ArgumentLimit | ChildLimit | ClockTick | GroupLimit | OpenFileLimit | PosixVersion | HasSavedIDs | HasJobControl
+type SystemID = _ByteArray ()
+data Handler = Default | Ignore | Catch (_State _RealWorld -> (Either IOError13 (), _State _RealWorld))
+data ProcessStatus = Exited ExitCode | Terminated Int | Stopped Int
+type Signal = Int
+type SignalSet = _ByteArray ()
+data BaudRate = B0 | B50 | B75 | B110 | B134 | B150 | B200 | B300 | B600 | B1200 | B1800 | B2400 | B4800 | B9600 | B19200 | B38400
+data ControlCharacter = EndOfFile | EndOfLine | Erase | Interrupt | Kill | Quit | Suspend | Start | Stop
+data FlowAction = SuspendOutput | RestartOutput | TransmitStop | TransmitStart
+data QueueSelector = InputQueue | OutputQueue | BothQueues
+type TerminalAttributes = _ByteArray ()
+data TerminalMode = InterruptOnBreak | MapCRtoLF | IgnoreBreak | IgnoreCR | IgnoreParityErrors | MapLFtoCR | CheckParity | StripHighBit | StartStopInput | StartStopOutput | MarkParityErrors | ProcessOutput | LocalMode | ReadEnable | TwoStopBits | HangupOnClose | EnableParity | OddParity | EnableEcho | EchoErase | EchoKill | EchoLF | ProcessInput | ExtendedFunctions | KeyboardInterrupts | NoFlushOnInterrupt | BackgroundWriteInterrupt
+data TerminalState = Immediately | WhenDrained | WhenFlushed
+type ByteCount = Int
+type Channel = Int
+type ClockTick = Int
+type EpochTime = Int
+type FileOffset = Int
+type GroupID = Int
+type Limit = Int
+type LinkCount = Int
+type ProcessGroupID = Int
+type ProcessID = Int
+type UserID = Int
+data ExitCode {-# GHC_PRAGMA ExitSuccess | ExitFailure Int #-}
+removeDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForID :: Int -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 GroupEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getUserEntryForID :: Int -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getUserEntryForName :: [Char] -> _State _RealWorld -> (Either IOError13 UserEntry, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+groupID :: GroupEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u2; _NO_DEFLT_ } _N_ #-}
+groupMembers :: GroupEntry -> [[Char]]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [[Char]]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u3; _NO_DEFLT_ } _N_ #-}
+groupName :: GroupEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: GroupEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB GE (u1 :: [Char]) (u2 :: Int) (u3 :: [[Char]]) -> u1; _NO_DEFLT_ } _N_ #-}
+homeDirectory :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAASA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u4; _NO_DEFLT_ } _N_ #-}
+argumentListTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+badChannel :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+brokenPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+directoryNotEmpty :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+e2BIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eACCES :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eAGAIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBADF :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eBUSY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eCHILD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eDEADLK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eEXIST :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eFBIG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINTR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eINVAL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eISDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eMLINK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNAMETOOLONG :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNFILE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNODEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOENT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOEXEC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOLCK :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOMEM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSPC :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOSYS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTDIR :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTEMPTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNOTTY :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eNXIO :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ePIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eROFS :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eSRCH :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+eXDEV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+execFormatError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileAlreadyExists :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+fileTooLarge :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+filenameTooLong :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getErrorCode :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+improperLink :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inappropriateIOControlOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inputOutputError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+interruptedOperation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidArgument :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+invalidSeek :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+isADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noChildProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+noLocksAvailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSpaceLeftOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchDeviceOrAddress :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchFileOrDirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchOperationOnDevice :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+noSuchProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notADirectory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+notEnoughMemory :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotImplemented :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+operationNotPermitted :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+permissionDenied :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+readOnlyFileSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceBusy :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceDeadlockAvoided :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+resourceTemporarilyUnavailable :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+accessTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+changeWorkingDirectory :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createDirectory :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createFile :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createLink :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+createNamedPipe :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+deviceID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileGroup :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileID :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileMode :: _ByteArray () -> _Word
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileOwner :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fileSize :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelStatus :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getChannelVar :: PathVar -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getFileStatus :: [Char] -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getPathVar :: PathVar -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "ESL" _N_ _N_ #-}
+getWorkingDirectory :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+groupExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+groupWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+intersectFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ and# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ and# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+isBlockDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isCharacterDevice :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isDirectory :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isNamedPipe :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+isRegularFile :: _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+linkCount :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+modificationTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nullFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+openChannel :: [Char] -> OpenMode -> Maybe _Word -> Bool -> Bool -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 9 _U_ 202111112 _N_ _S_ "SASEEEEEL" {_A_ 8 _U_ 22111112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+openDirStream :: [Char] -> _State _RealWorld -> (Either IOError13 _Addr, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+otherExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+otherWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerExecuteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerModes :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerReadMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+ownerWriteMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryAccess :: [Char] -> Bool -> Bool -> Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21112 _N_ _S_ "SEEEL" _N_ _N_ #-}
+queryFile :: [Char] -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+readDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+removeLink :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+rename :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "SSL" _N_ _N_ #-}
+rewindDirStream :: _Addr -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+closeChannel :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createPipe :: _State _RealWorld -> (Either IOError13 (Int, Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannel :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+dupChannelTo :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (Maybe (Int, (LockRequest, SeekMode, Int, Int))), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryChannelOption :: ChannelOption -> Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 211 _N_ _S_ "EU(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+readChannel :: Int -> Int -> _State _RealWorld -> (Either IOError13 ([Char], Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(P)U(P)" {_A_ 3 _U_ 122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+runProcess :: [Char] -> [[Char]] -> Maybe [([Char], [Char])] -> Maybe [Char] -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> Maybe (_MVar _Handle) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 8 _U_ 22111111 _N_ _S_ "LLLLLLLU(P)" _N_ _N_ #-}
+userGroupID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAU(P)AA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u3; _NO_DEFLT_ } _N_ #-}
+userID :: UserEntry -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(P)AAA)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u2; _NO_DEFLT_ } _N_ #-}
+userName :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(SAAAA)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u1; _NO_DEFLT_ } _N_ #-}
+userShell :: UserEntry -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AAAAS)" {_A_ 1 _U_ 1 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 1 \ (u0 :: [Char]) -> u0 _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: UserEntry) -> case u0 of { _ALG_ _ORIG_ LibPosixDB UE (u1 :: [Char]) (u2 :: Int) (u3 :: Int) (u4 :: [Char]) (u5 :: [Char]) -> u5; _NO_DEFLT_ } _N_ #-}
+setErrorCode :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+tooManyLinks :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFiles :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+tooManyOpenFilesInSystem :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setFileCreationMask :: _Word -> _State _RealWorld -> (Either IOError13 _Word, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileMode :: [Char] -> _Word -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 212 _N_ _S_ "SU(P)L" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setFileTimes :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setOwnerAndGroup :: [Char] -> Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2112 _N_ _S_ "SU(P)U(P)L" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserIDMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+statusChangeTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+stdError :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [2#] _N_ #-}
+stdFileMode :: _Word
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+stdInput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+stdOutput :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [1#] _N_ #-}
+touchFile :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+unionFileModes :: _Word -> _Word -> _Word
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _F_ _IF_ARGS_ 0 2 XX 3 \ (u0 :: Word#) (u1 :: Word#) -> case _#_ or# [] [u0, u1] of { _PRIM_ (u2 :: Word#) -> _!_ W# [] [u2] } _N_} _F_ _IF_ARGS_ 0 2 CC 5 \ (u0 :: _Word) (u1 :: _Word) -> case u0 of { _ALG_ W# (u2 :: Word#) -> case u1 of { _ALG_ W# (u3 :: Word#) -> case _#_ or# [] [u2, u3] of { _PRIM_ (u4 :: Word#) -> _!_ W# [] [u4] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+seekChannel :: Int -> SeekMode -> Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)EU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setChannelOption :: ChannelOption -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "ELU(P)U(P)" {_A_ 4 _U_ 2122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+waitToSetLock :: Int -> (LockRequest, SeekMode, Int, Int) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "LU(EEU(P)U(P))U(P)" {_A_ 3 _U_ 112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+writeChannel :: Int -> [Char] -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "U(P)SL" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childSystemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+childUserTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+createSession :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+elapsedTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)A)" {_A_ 1 _U_ 2 _N_ _N_ _F_ _IF_ARGS_ 0 1 X 2 \ (u0 :: Int#) -> _!_ I# [] [u0] _N_} _F_ _IF_ARGS_ 0 1 C 2 \ (u0 :: (Int, _ByteArray ())) -> case u0 of { _ALG_ _TUP_2 (u1 :: Int) (u2 :: _ByteArray ()) -> u1; _NO_DEFLT_ } _N_ #-}
+epochTime :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getControllingTerminalName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEffectiveUserName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroups :: _State _RealWorld -> (Either IOError13 [Int], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getLoginName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getParentProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessTimes :: _State _RealWorld -> (Either IOError13 (Int, _ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealGroupID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getRealUserID :: _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSysVar :: SysVar -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSystemID :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalName :: Int -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+joinProcessGroup :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+machine :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+nodeName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+queryTerminal :: Int -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+release :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setGroupID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setUserID :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemName :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+systemTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+userTime :: (Int, _ByteArray ()) -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AU(AP))" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+version :: _ByteArray () -> [Char]
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+addSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+awaitSignal :: Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+backgroundRead :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+backgroundWrite :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+blockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+continueProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+deleteSignal :: Int -> _ByteArray () -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+emptySignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+executeFile :: [Char] -> Bool -> [[Char]] -> Maybe [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 5 _U_ 21212 _N_ _S_ "SELSL" _N_ _N_ #-}
+exitImmediately :: ExitCode -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+floatingPointException :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+forkProcess :: _State _RealWorld -> (Either IOError13 (Maybe Int), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+fullSignalSet :: _ByteArray ()
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+getAnyProcessStatus :: Bool -> Bool -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 222 _N_ _S_ "EEL" _N_ _N_ #-}
+getEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+getEnvironment :: _State _RealWorld -> (Either IOError13 [([Char], [Char])], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getGroupProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe (Int, ProcessStatus)), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getPendingSignals :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProcessStatus :: Bool -> Bool -> Int -> _State _RealWorld -> (Either IOError13 (Maybe ProcessStatus), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "EEU(P)U(P)" {_A_ 4 _U_ 1122 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getSignalMask :: _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+illegalInstruction :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+inSignalSet :: Int -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(AP)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+installHandler :: Int -> Handler -> Maybe (_ByteArray ()) -> _State _RealWorld -> (Either IOError13 Handler, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)SSU(P)" {_A_ 4 _U_ 2112 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+internalAbort :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+keyboardTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+killProcess :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+lostConnection :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+nullSignal :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 2 _!_ I# [] [0#] _N_ #-}
+openEndedPipe :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+processStatusChanged :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+queryStoppedChildFlag :: _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+raiseSignal :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "LU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+realTimeAlarm :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+removeEnvVar :: [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 22 _N_ _S_ "SL" _N_ _N_ #-}
+scheduleAlarm :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+segmentationViolation :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+setEnvVar :: [Char] -> [Char] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 122 _N_ _S_ "SLL" _N_ _N_ #-}
+setEnvironment :: [([Char], [Char])] -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setSignalMask :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+setStoppedChildFlag :: Bool -> _State _RealWorld -> (Either IOError13 Bool, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "EU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigABRT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigALRM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCHLD :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigCONT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigFPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigHUP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigINT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigKILL :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigPIPE :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigProcMask :: [Char] -> Int -> _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 2111 _N_ _S_ "LU(P)U(AP)U(P)" {_A_ 4 _U_ 2222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sigQUIT :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSEGV :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSTOP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigSetSize :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTERM :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTSTP :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTIN :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigTTOU :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+sigUSR2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+signalProcess :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+signalProcessGroup :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _F_ _IF_ARGS_ 0 3 XXX 5 \ (u0 :: Int#) (u1 :: Int#) (u2 :: State# _RealWorld) -> case _#_ negateInt# [] [u1] of { _PRIM_ (u3 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u0, u3, u2 ] } _N_} _F_ _ALWAYS_ \ (u0 :: Int) (u1 :: Int) (u2 :: _State _RealWorld) -> case u0 of { _ALG_ I# (u3 :: Int#) -> case u1 of { _ALG_ I# (u4 :: Int#) -> case u2 of { _ALG_ S# (u5 :: State# _RealWorld) -> case _#_ negateInt# [] [u4] of { _PRIM_ (u6 :: Int#) -> _APP_ _WRKR_ _ORIG_ LibPosixProcPrim signalProcess [ u3, u6, u5 ] }; _NO_DEFLT_ }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_ #-}
+sleep :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+softwareStop :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+softwareTermination :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+unBlockSignals :: _ByteArray () -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _N_ _N_ _N_ #-}
+userDefinedSignal1 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+userDefinedSignal2 :: Int
+ {-# GHC_PRAGMA _A_ 0 _N_ _N_ _N_ _N_ _N_ #-}
+bitsPerByte :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlChar :: _ByteArray () -> ControlCharacter -> Maybe Char
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+controlFlow :: Int -> FlowAction -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+discardData :: Int -> QueueSelector -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)EU(P)" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+drainOutput :: Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalAttributes :: Int -> _State _RealWorld -> (Either IOError13 (_ByteArray ()), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getTerminalProcessGroupID :: Int -> _State _RealWorld -> (Either IOError13 Int, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(P)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+inputTime :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+minInput :: _ByteArray () -> Int
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+outputSpeed :: _ByteArray () -> BaudRate
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(AP)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+sendBreak :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalAttributes :: Int -> _ByteArray () -> TerminalState -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 4 _U_ 1111 _N_ _S_ "U(P)U(AP)EU(P)" {_A_ 4 _U_ 2212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+setTerminalProcessGroupID :: Int -> Int -> _State _RealWorld -> (Either IOError13 (), _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 3 _U_ 111 _N_ _S_ "U(P)U(P)U(P)" {_A_ 3 _U_ 222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+terminalMode :: TerminalMode -> _ByteArray () -> Bool
+ {-# GHC_PRAGMA _A_ 2 _U_ 12 _N_ _S_ "E" _N_ _N_ #-}
+withBits :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withCC :: _ByteArray () -> (ControlCharacter, Char) -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(EU(P))" {_A_ 3 _U_ 212 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withInputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMinInput :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withOutputSpeed :: _ByteArray () -> BaudRate -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withTime :: _ByteArray () -> Int -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)U(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutCC :: _ByteArray () -> ControlCharacter -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+withoutMode :: _ByteArray () -> TerminalMode -> _ByteArray ()
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "U(AP)E" {_A_ 2 _U_ 21 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool)] [_CONSTM_ Eq (==) (ProcessStatus), _CONSTM_ Eq (/=) (ProcessStatus)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "SS" _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ProcessStatus}}, (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> Bool), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> ProcessStatus), (ProcessStatus -> ProcessStatus -> _CMP_TAG)] [_DFUN_ Eq (ProcessStatus), _CONSTM_ Ord (<) (ProcessStatus), _CONSTM_ Ord (<=) (ProcessStatus), _CONSTM_ Ord (>=) (ProcessStatus), _CONSTM_ Ord (>) (ProcessStatus), _CONSTM_ Ord max (ProcessStatus), _CONSTM_ Ord min (ProcessStatus), _CONSTM_ Ord _tagCmp (ProcessStatus)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ProcessStatus
+ {-# GHC_PRAGMA _M_ LibPosixProcPrim {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ProcessStatus, [Char])]), (Int -> ProcessStatus -> [Char] -> [Char]), ([Char] -> [([ProcessStatus], [Char])]), ([ProcessStatus] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ProcessStatus), _CONSTM_ Text showsPrec (ProcessStatus), _CONSTM_ Text readList (ProcessStatus), _CONSTM_ Text showList (ProcessStatus)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem.hi b/ghc/lib/haskell-1.3/LibSystem.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem.lhs b/ghc/lib/haskell-1.3/LibSystem.lhs
new file mode 100644
index 0000000000..1705f847a1
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem.lhs
@@ -0,0 +1,103 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibSystem]{Haskell 1.3 System Interaction}
+
+\begin{code}
+module LibSystem where
+
+import PreludeGlaST
+import PreludeIOError
+import PreludeDialogueIO ( unpackArgv, unpackProgName )
+
+data ExitCode = ExitSuccess
+ | ExitFailure Int
+{- mattson -} deriving (Eq, Ord, Text)
+
+\end{code}
+
+The $ExitCode$ type defines the exit codes that a program
+can return. $ExitSuccess$ indicates successful termination;
+and $ExitFailure code$ indicates program failure
+with value {\em code}. The exact interpretation of {\em code}
+is operating-system dependent. In particular, some values of
+{\em code} may be prohibited (e.g. 0 on a POSIX-compliant system).
+
+\begin{code}
+getArgs :: IO [String]
+getArgs = return (unpackArgv ``prog_argv'' (``prog_argc''::Int))
+\end{code}
+
+Computation $getArgs$ returns a list of the program's command
+line arguments (not including the program name).
+
+\begin{code}
+getProgName :: IO String
+getProgName = return (unpackProgName ``prog_argv'')
+\end{code}
+
+Computation $getProgName$ returns the name of the program
+as it was invoked.
+
+\begin{code}
+getEnv :: String -> IO String
+getEnv name =
+ _ccall_ getenv name `thenPrimIO` \ litstring ->
+ if litstring /= ``NULL'' then
+ return (_unpackPS (_packCString litstring)) -- cheaper than it looks
+ else
+ failWith (NoSuchThing ("environment variable: " ++ name))
+\end{code}
+
+Computation $getEnv var$ returns the value
+of the environment variable {\em var}.
+
+This computation may fail with
+\begin{itemize}
+\item $NoSuchThing$
+The environment variable does not exist.
+\end{itemize}
+
+\begin{code}
+system :: String -> IO ExitCode
+system "" = failWith (InvalidArgument "null command")
+system cmd =
+ _ccall_ systemCmd cmd `thenPrimIO` \ status ->
+ case status of
+ 0 -> return ExitSuccess
+ -1 -> _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ n -> return (ExitFailure n)
+\end{code}
+
+Computation $system cmd$ returns the exit code
+produced when the operating system processes the command {\em cmd}.
+
+This computation may fail with
+\begin{itemize}
+\item $PermissionDenied$
+The process has insufficient privileges to perform the operation.
+\item $ResourceExhausted$
+Insufficient resources are available to perform the operation.
+\item $UnsupportedOperation$
+The implementation does not support system calls.
+\end{itemize}
+
+\begin{code}
+exitWith :: ExitCode -> IO a
+exitWith ExitSuccess =
+ _ccall_ EXIT (0::Int) `thenPrimIO` \ () ->
+ failWith (OtherError13 "exit should not return")
+
+exitWith (ExitFailure n)
+ | n == 0 = failWith (InvalidArgument "ExitFailure 0")
+ | otherwise =
+ _ccall_ EXIT n `thenPrimIO` \ () ->
+ failWith (OtherError13 "exit should not return")
+\end{code}
+
+Computation $exitWith code$ terminates the
+program, returning {\em code} to the program's caller.
+Before it terminates, any open or semi-closed handles are first closed.
+
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mc.hi b/ghc/lib/haskell-1.3/LibSystem_mc.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mc.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mg.hi b/ghc/lib/haskell-1.3/LibSystem_mg.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mg.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mp.hi b/ghc/lib/haskell-1.3/LibSystem_mp.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mp.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mr.hi b/ghc/lib/haskell-1.3/LibSystem_mr.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mr.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_mt.hi b/ghc/lib/haskell-1.3/LibSystem_mt.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_mt.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_p.hi b/ghc/lib/haskell-1.3/LibSystem_p.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_p.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibSystem_t.hi b/ghc/lib/haskell-1.3/LibSystem_t.hi
new file mode 100644
index 0000000000..5569655960
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibSystem_t.hi
@@ -0,0 +1,35 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibSystem where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data ExitCode = ExitSuccess | ExitFailure Int
+exitWith :: ExitCode -> _State _RealWorld -> (Either IOError13 a, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 11 _N_ _S_ "SU(P)" {_A_ 2 _U_ 12 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getArgs :: _State _RealWorld -> (Either IOError13 [[Char]], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getEnv :: [Char] -> _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "LU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+getProgName :: _State _RealWorld -> (Either IOError13 [Char], _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+system :: [Char] -> _State _RealWorld -> (Either IOError13 ExitCode, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 2 _U_ 21 _N_ _S_ "SU(P)" {_A_ 2 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool)] [_CONSTM_ Eq (==) (ExitCode), _CONSTM_ Eq (/=) (ExitCode)] _N_
+ (==) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (/=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Ord ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ExitCode}}, (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> Bool), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> ExitCode), (ExitCode -> ExitCode -> _CMP_TAG)] [_DFUN_ Eq (ExitCode), _CONSTM_ Ord (<) (ExitCode), _CONSTM_ Ord (<=) (ExitCode), _CONSTM_ Ord (>=) (ExitCode), _CONSTM_ Ord (>) (ExitCode), _CONSTM_ Ord max (ExitCode), _CONSTM_ Ord min (ExitCode), _CONSTM_ Ord _tagCmp (ExitCode)] _N_
+ (<) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (<=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>=) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ (>) = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 22 _N_ _S_ "SS" _N_ _N_ #-}
+instance Text ExitCode
+ {-# GHC_PRAGMA _M_ LibSystem {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ExitCode, [Char])]), (Int -> ExitCode -> [Char] -> [Char]), ([Char] -> [([ExitCode], [Char])]), ([ExitCode] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ExitCode), _CONSTM_ Text showsPrec (ExitCode), _CONSTM_ Text readList (ExitCode), _CONSTM_ Text showList (ExitCode)] _N_
+ readsPrec = _A_ 1 _U_ 12 _N_ _S_ "U(P)" {_A_ 1 _U_ 22 _N_ _N_ _N_ _N_} _N_ _N_,
+ showsPrec = _A_ 2 _U_ 112 _N_ _S_ "LS" _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime.hi b/ghc/lib/haskell-1.3/LibTime.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime.lhs b/ghc/lib/haskell-1.3/LibTime.lhs
new file mode 100644
index 0000000000..36b2b287b5
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime.lhs
@@ -0,0 +1,232 @@
+%
+% (c) The GRASP/AQUA Project, Glasgow University, 1995
+%
+\section[LibTime]{Haskell 1.3 Time of Day Library}
+
+The {\em LibTime} library provides the functionality of "time.h",
+adapted to the Haskell environment. It includes timezone information,
+as in System V, and follows RFC 1129 in its use of Coordinated
+Universal Time (UTC).
+
+\begin{code}
+module LibTime (
+ CalendarTime(..),
+ ClockTime,
+ TimeDiff(..),
+ addToClockTime,
+ diffClockTimes,
+ getClockTime,
+ toCalendarTime,
+ toUTCTime,
+ toClockTime
+ ) where
+
+import PreludeIOError
+import PreludeGlaST
+import PS
+
+\end{code}
+
+$ClockTime$ is an abstract type, used for the internal clock time.
+Clock times may be compared, converted to strings, or converted to an
+external calendar time $CalendarTime$.
+
+\begin{code}
+data ClockTime = TOD Integer Integer
+ deriving (Eq, Ord)
+\end{code}
+
+When a $ClockTime$ is shown, it is converted to a string of the form
+$"Mon Nov 28 21:45:41 GMT 1994"$.
+
+For now, we are restricted to roughly:
+Fri Dec 13 20:45:52 1901 through Tue Jan 19 03:14:07 2038, because
+we use the C library routines based on 32 bit integers.
+
+\begin{code}
+instance Text ClockTime where
+ showsPrec p (TOD sec@(J# a# s# d#) nsec) =
+ showString (unsafePerformPrimIO (
+ _ccall_ showTime (I# s#) (_ByteArray (error "ClockTime.show") d#)
+ `thenPrimIO` \ str ->
+ _ccall_ strlen str `thenPrimIO` \ len ->
+ _packCBytesST len str `thenStrictlyST` \ ps ->
+ returnPrimIO (_unpackPS ps)))
+\end{code}
+
+
+$CalendarTime$ is a user-readable and manipulable
+representation of the internal $ClockTime$ type. The
+numeric fields have the following ranges.
+
+\begin{verbatim}
+Value Range Comments
+----- ----- --------
+
+year -maxInt .. maxInt [Pre-Gregorian dates are inaccurate]
+mon 0 .. 11 [Jan = 0, Dec = 11]
+day 1 .. 31
+hour 0 .. 23
+min 0 .. 59
+sec 0 .. 61 [Allows for two leap seconds]
+picosec 0 .. (10^12)-1 [This could be over-precise?]
+wday 0 .. 6 [Sunday = 0, Saturday = 6]
+yday 0 .. 365 [364 in non-Leap years]
+tz -43200 .. 43200 [Variation from UTC in seconds]
+\end{verbatim}
+
+The {\em tzname} field is the name of the time zone. The {\em isdst}
+field indicates whether Daylight Savings Time would be in effect.
+
+\begin{code}
+-- year mon day hour min sec picosec wday yday tzname tz isdst
+data CalendarTime =
+ CalendarTime Int Int Int Int Int Int Integer Int Int String Int Bool
+\end{code}
+
+The $TimeDiff$ type records the difference between two clock times in
+a user-readable way.
+
+\begin{code}
+-- year mon day hour min sec picosec
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+ deriving (Eq,Ord)
+\end{code}
+
+$getClockTime$ returns the current time in its internal representation.
+
+\begin{code}
+getClockTime :: IO ClockTime
+getClockTime =
+ malloc1 `thenStrictlyST` \ i1 ->
+ malloc1 `thenStrictlyST` \ i2 ->
+ _ccall_ getClockTime i1 i2 `thenPrimIO` \ rc ->
+ if rc == 0 then
+ cvtUnsigned i1 `thenStrictlyST` \ sec ->
+ cvtUnsigned i2 `thenStrictlyST` \ nsec ->
+ return (TOD sec (nsec * 1000))
+ else
+ _constructError `thenPrimIO` \ ioError ->
+ failWith ioError
+ where
+ malloc1 (S# s#) =
+ case newIntArray# 1# s# of
+ StateAndMutableByteArray# s2# barr# -> (_MutableByteArray bot barr#, S# s2#)
+ bot = error "getClockTime"
+
+ -- The C routine fills in an unsigned word. We don't have `unsigned2Integer#,'
+ -- so we freeze the data bits and use them for an MP_INT structure. Note that
+ -- zero is still handled specially, although (J# 1# 1# (ptr to 0#)) is probably
+ -- acceptable to gmp.
+
+ cvtUnsigned (_MutableByteArray _ arr#) (S# s#) =
+ case readIntArray# arr# 0# s# of
+ StateAndInt# s2# r# ->
+ if r# ==# 0# then
+ (0, S# s2#)
+ else
+ case unsafeFreezeByteArray# arr# s2# of
+ StateAndByteArray# s3# frozen# -> (J# 1# 1# frozen#, S# s3#)
+
+\end{code}
+
+$addToClockTime$ {\em d} {\em t} adds a time difference {\em d} and a
+clock time {\em t} to yield a new clock time. The difference {\em d}
+may be either positive or negative. $diffClockTimes$ {\em t1} {\em
+t2} returns the difference between two clock times {\em t1} and {\em
+t2} as a $TimeDiff$.
+
+
+\begin{code}
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+addToClockTime _ _ = error "addToClockTime unimplemented"
+
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+diffClockTimes _ _ = error "diffClockTimes unimplemented"
+\end{code}
+
+$toCalendarTime$ {\em t} converts {\em t} to a local time, modified by
+the current timezone and daylight savings time settings. $toUTCTime$
+{\em t} converts {\em t} into UTC time. $toClockTime$ {\em l}
+converts {\em l} into the corresponding internal $ClockTime$. The
+{\em wday}, {\em yday}, {\em tzname}, and {\em isdst} fields are
+ignored.
+
+\begin{code}
+toCalendarTime :: ClockTime -> CalendarTime
+toCalendarTime (TOD sec@(J# a# s# d#) psec) = unsafePerformPrimIO (
+ _ccall_ toLocalTime (I# s#) (_ByteArray (error "toCalendarTime") d#)
+ `thenPrimIO` \ tm ->
+ if tm == (``NULL''::_Addr) then
+ error "toCalendarTime{LibTime}: out of range"
+ else
+ _casm_ ``%r = ((struct tm *)%0)->tm_sec;'' tm
+ `thenPrimIO` \ sec ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_min;'' tm
+ `thenPrimIO` \ min ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_hour;'' tm
+ `thenPrimIO` \ hour ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mday;'' tm
+ `thenPrimIO` \ mday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mon;'' tm
+ `thenPrimIO` \ mon ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_year;'' tm
+ `thenPrimIO` \ year ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_wday;'' tm
+ `thenPrimIO` \ wday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_yday;'' tm
+ `thenPrimIO` \ yday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_isdst;'' tm
+ `thenPrimIO` \ isdst ->
+ _ccall_ ZONE tm `thenPrimIO` \ zone ->
+ _ccall_ GMTOFF tm `thenPrimIO` \ tz ->
+ _ccall_ strlen zone `thenPrimIO` \ len ->
+ _packCBytesST len zone `thenStrictlyST` \ tzname ->
+ returnPrimIO (CalendarTime (1900+year) mon mday hour min sec psec
+ wday yday (_unpackPS tzname) tz (isdst /= 0))
+ )
+
+toUTCTime :: ClockTime -> CalendarTime
+toUTCTime (TOD sec@(J# a# s# d#) psec) = unsafePerformPrimIO (
+ _ccall_ toUTCTime (I# s#) (_ByteArray (error "toCalendarTime") d#)
+ `thenPrimIO` \ tm ->
+ if tm == (``NULL''::_Addr) then
+ error "toUTCTime{LibTime}: out of range"
+ else
+ _casm_ ``%r = ((struct tm *)%0)->tm_sec;'' tm
+ `thenPrimIO` \ sec ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_min;'' tm
+ `thenPrimIO` \ min ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_hour;'' tm
+ `thenPrimIO` \ hour ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mday;'' tm
+ `thenPrimIO` \ mday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_mon;'' tm
+ `thenPrimIO` \ mon ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_year;'' tm
+ `thenPrimIO` \ year ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_wday;'' tm
+ `thenPrimIO` \ wday ->
+ _casm_ ``%r = ((struct tm *)%0)->tm_yday;'' tm
+ `thenPrimIO` \ yday ->
+ returnPrimIO (CalendarTime (1900+year) mon mday hour min sec psec
+ wday yday "UTC" 0 False)
+ )
+
+toClockTime :: CalendarTime -> ClockTime
+toClockTime (CalendarTime year mon mday hour min sec psec wday yday tzname tz isdst) =
+ if psec < 0 || psec > 999999999999 then
+ error "toClockTime{LibTime}: picoseconds out of range"
+ else if tz < -43200 || tz > 43200 then
+ error "toClockTime{LibTime}: timezone offset out of range"
+ else
+ unsafePerformPrimIO (
+ _ccall_ toClockSec year mon mday hour min sec tz
+ `thenPrimIO` \ ptr@(A# ptr#) ->
+ if ptr /= ``NULL'' then
+ returnPrimIO (TOD (int2Integer# (indexIntOffAddr# ptr# 0#)) psec)
+ else
+ error "toClockTime{LibTime}: can't perform conversion"
+ )
+\end{code}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mc.hi b/ghc/lib/haskell-1.3/LibTime_mc.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mc.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mg.hi b/ghc/lib/haskell-1.3/LibTime_mg.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mg.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mp.hi b/ghc/lib/haskell-1.3/LibTime_mp.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mp.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mr.hi b/ghc/lib/haskell-1.3/LibTime_mr.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mr.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_mt.hi b/ghc/lib/haskell-1.3/LibTime_mt.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_mt.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_p.hi b/ghc/lib/haskell-1.3/LibTime_p.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_p.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+
diff --git a/ghc/lib/haskell-1.3/LibTime_t.hi b/ghc/lib/haskell-1.3/LibTime_t.hi
new file mode 100644
index 0000000000..024af1d0b7
--- /dev/null
+++ b/ghc/lib/haskell-1.3/LibTime_t.hi
@@ -0,0 +1,52 @@
+{-# GHC_PRAGMA INTERFACE VERSION 5 #-}
+interface LibTime where
+import PreludeIOError(IOError13)
+import PreludeMonadicIO(Either)
+data CalendarTime = CalendarTime Int Int Int Int Int Int Integer Int Int [Char] Int Bool
+data ClockTime {-# GHC_PRAGMA TOD Integer Integer #-}
+data TimeDiff = TimeDiff Int Int Int Int Int Int Integer
+addToClockTime :: TimeDiff -> ClockTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: TimeDiff) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { ClockTime } [ _NOREP_S_ "addToClockTime unimplemented" ] _N_ #-}
+diffClockTimes :: ClockTime -> ClockTime -> TimeDiff
+ {-# GHC_PRAGMA _A_ 2 _U_ 00 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 2 \ (u0 :: ClockTime) (u1 :: ClockTime) -> _APP_ _TYAPP_ error { TimeDiff } [ _NOREP_S_ "diffClockTimes unimplemented" ] _N_ #-}
+getClockTime :: _State _RealWorld -> (Either IOError13 ClockTime, _State _RealWorld)
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(P)" {_A_ 1 _U_ 2 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toCalendarTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+toClockTime :: CalendarTime -> ClockTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(P)U(P)U(P)U(P)U(P)U(P)U(PPP)AAAU(P)A)" _N_ _N_ #-}
+toUTCTime :: ClockTime -> CalendarTime
+ {-# GHC_PRAGMA _A_ 1 _U_ 1 _N_ _S_ "U(U(PPP)L)" {_A_ 4 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool)] [_CONSTM_ Eq (==) (ClockTime), _CONSTM_ Eq (/=) (ClockTime)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _F_ _IF_ARGS_ 0 5 XXXCC 9 \ (u0 :: Int#) (u1 :: Int#) (u2 :: ByteArray#) (u3 :: Integer) (u4 :: ClockTime) -> case u4 of { _ALG_ _ORIG_ LibTime TOD (u5 :: Integer) (u6 :: Integer) -> case u5 of { _ALG_ J# (u7 :: Int#) (u8 :: Int#) (u9 :: ByteArray#) -> case _#_ cmpInteger# [] [u0, u1, u2, u7, u8, u9] of { _PRIM_ 0# -> case u3 of { _ALG_ J# (ua :: Int#) (ub :: Int#) (uc :: ByteArray#) -> case u6 of { _ALG_ J# (ud :: Int#) (ue :: Int#) (uf :: ByteArray#) -> case _#_ cmpInteger# [] [ua, ub, uc, ud, ue, uf] of { _PRIM_ 0# -> _!_ True [] []; (ug :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ }; (uh :: Int#) -> _!_ False [] [] }; _NO_DEFLT_ }; _NO_DEFLT_ } _N_} _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Eq TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 3 _!_ _TUP_2 [(TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool)] [_CONSTM_ Eq (==) (TimeDiff), _CONSTM_ Eq (/=) (TimeDiff)] _N_
+ (==) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (/=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Ord ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq ClockTime}}, (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> Bool), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> ClockTime), (ClockTime -> ClockTime -> _CMP_TAG)] [_DFUN_ Eq (ClockTime), _CONSTM_ Ord (<) (ClockTime), _CONSTM_ Ord (<=) (ClockTime), _CONSTM_ Ord (>=) (ClockTime), _CONSTM_ Ord (>) (ClockTime), _CONSTM_ Ord max (ClockTime), _CONSTM_ Ord min (ClockTime), _CONSTM_ Ord _tagCmp (ClockTime)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_,
+ max = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ min = _A_ 2 _U_ 12 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22222 _N_ _N_ _N_ _N_} _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(PPP)L)U(U(PPP)L)" {_A_ 5 _U_ 22211 _N_ _N_ _N_ _N_} _N_ _N_ #-}
+instance Ord TimeDiff
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 9 _!_ _TUP_8 [{{Eq TimeDiff}}, (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> Bool), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> TimeDiff), (TimeDiff -> TimeDiff -> _CMP_TAG)] [_DFUN_ Eq (TimeDiff), _CONSTM_ Ord (<) (TimeDiff), _CONSTM_ Ord (<=) (TimeDiff), _CONSTM_ Ord (>=) (TimeDiff), _CONSTM_ Ord (>) (TimeDiff), _CONSTM_ Ord max (TimeDiff), _CONSTM_ Ord min (TimeDiff), _CONSTM_ Ord _tagCmp (TimeDiff)] _N_
+ (<) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (<=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>=) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ (>) = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ max = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ min = _A_ 2 _U_ 22 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_,
+ _tagCmp = _A_ 2 _U_ 11 _N_ _S_ "U(U(P)LLLLLL)U(U(P)LLLLLL)" _N_ _N_ #-}
+instance Text ClockTime
+ {-# GHC_PRAGMA _M_ LibTime {-dfun-} _A_ 0 _N_ _N_ _N_ _F_ _IF_ARGS_ 0 0 X 5 _!_ _TUP_4 [(Int -> [Char] -> [(ClockTime, [Char])]), (Int -> ClockTime -> [Char] -> [Char]), ([Char] -> [([ClockTime], [Char])]), ([ClockTime] -> [Char] -> [Char])] [_CONSTM_ Text readsPrec (ClockTime), _CONSTM_ Text showsPrec (ClockTime), _CONSTM_ Text readList (ClockTime), _CONSTM_ Text showList (ClockTime)] _N_
+ readsPrec = _A_ 2 _U_ 22 _N_ _S_ _!_ _F_ _IF_ARGS_ 0 2 XX 4 \ (u0 :: Int) (u1 :: [Char]) -> _APP_ _TYAPP_ patError# { (Int -> [Char] -> [(ClockTime, [Char])]) } [ _NOREP_S_ "%DPreludeCore.Text.readsPrec\"", u0, u1 ] _N_,
+ showsPrec = _A_ 2 _U_ 012 _N_ _S_ "AU(U(PPP)A)" {_A_ 3 _U_ 0222 _N_ _N_ _N_ _N_} _N_ _N_,
+ readList = _A_ 0 _U_ 2 _N_ _N_ _N_ _N_,
+ showList = _A_ 0 _U_ 12 _N_ _N_ _N_ _N_ #-}
+