diff --git a/Control/Concurrent/Chan.hs b/Control/Concurrent/Chan.hs
--- a/Control/Concurrent/Chan.hs
+++ b/Control/Concurrent/Chan.hs
@@ -40,6 +40,7 @@
 
 import System.IO.Unsafe         ( unsafeInterleaveIO )
 import Control.Concurrent.MVar
+import Control.Exception (mask_)
 import Data.Typeable
 
 #include "Typeable.h"
@@ -51,7 +52,7 @@
 -- |'Chan' is an abstract type representing an unbounded FIFO channel.
 data Chan a
  = Chan (MVar (Stream a))
-        (MVar (Stream a))
+        (MVar (Stream a)) -- Invariant: the Stream a is always an empty MVar
    deriving Eq
 
 INSTANCE_TYPEABLE1(Chan,chanTc,"Chan")
@@ -83,9 +84,20 @@
 writeChan :: Chan a -> a -> IO ()
 writeChan (Chan _ writeVar) val = do
   new_hole <- newEmptyMVar
-  modifyMVar_ writeVar $ \old_hole -> do
+  mask_ $ do
+    old_hole <- takeMVar writeVar
     putMVar old_hole (ChItem val new_hole)
-    return new_hole
+    putMVar writeVar new_hole
+
+-- The reason we don't simply do this:
+--
+--    modifyMVar_ writeVar $ \old_hole -> do
+--      putMVar old_hole (ChItem val new_hole)
+--      return new_hole
+--
+-- is because if an asynchronous exception is received after the 'putMVar'
+-- completes and before modifyMVar_ installs the new value, it will set the
+-- Chan's write end to a filled hole.
 
 -- |Read the next value from the 'Chan'.
 readChan :: Chan a -> IO a
diff --git a/Data/Bits.hs b/Data/Bits.hs
--- a/Data/Bits.hs
+++ b/Data/Bits.hs
@@ -238,7 +238,8 @@
     popCount = go 0
       where
         go !c 0 = c
-        go c w = go (c+1) (w .&. w - 1)  -- clear the least significant bit set
+        go c w = go (c+1) (w .&. (w - 1))  -- clear the least significant bit set
+    {-# INLINABLE popCount #-}
     {- This implementation is intentionally naive.  Instances are
        expected to override it with something optimized for their
        size. -}
diff --git a/Data/List.hs b/Data/List.hs
--- a/Data/List.hs
+++ b/Data/List.hs
@@ -376,7 +376,7 @@
 deleteBy _  _ []        = []
 deleteBy eq x (y:ys)    = if x `eq` y then ys else y : deleteBy eq x ys
 
--- | The '\\' function is list difference ((non-associative).
+-- | The '\\' function is list difference (non-associative).
 -- In the result of @xs@ '\\' @ys@, the first occurrence of each element of
 -- @ys@ in turn (if any) has been removed from @xs@.  Thus
 --
diff --git a/GHC/IO.hs b/GHC/IO.hs
--- a/GHC/IO.hs
+++ b/GHC/IO.hs
@@ -208,11 +208,25 @@
 unsafeInterleaveIO :: IO a -> IO a
 unsafeInterleaveIO m = unsafeDupableInterleaveIO (noDuplicate >> m)
 
--- We believe that INLINE on unsafeInterleaveIO is safe, because the
--- state from this IO thread is passed explicitly to the interleaved
--- IO, so it cannot be floated out and shared.
+-- We used to believe that INLINE on unsafeInterleaveIO was safe,
+-- because the state from this IO thread is passed explicitly to the
+-- interleaved IO, so it cannot be floated out and shared.
+--
+-- HOWEVER, if the compiler figures out that r is used strictly here,
+-- then it will eliminate the thunk and the side effects in m will no
+-- longer be shared in the way the programmer was probably expecting,
+-- but can be performed many times.  In #5943, this broke our
+-- definition of fixIO, which contains
+--
+--    ans <- unsafeInterleaveIO (takeMVar m)
+--
+-- after inlining, we lose the sharing of the takeMVar, so the second
+-- time 'ans' was demanded we got a deadlock.  We could fix this with
+-- a readMVar, but it seems wrong for unsafeInterleaveIO to sometimes
+-- share and sometimes not (plus it probably breaks the noDuplicate).
+-- So now, we do not inline unsafeDupableInterleaveIO.
 
-{-# INLINE unsafeDupableInterleaveIO #-}
+{-# NOINLINE unsafeDupableInterleaveIO #-}
 unsafeDupableInterleaveIO :: IO a -> IO a
 unsafeDupableInterleaveIO (IO m)
   = IO ( \ s -> let
diff --git a/GHC/IO/Handle/Text.hs b/GHC/IO/Handle/Text.hs
--- a/GHC/IO/Handle/Text.hs
+++ b/GHC/IO/Handle/Text.hs
@@ -889,7 +889,8 @@
                                         -- that bufReadNBNonEmpty will not
                                         -- issue another read.
             else
-              bufReadNBNonEmpty h_ buf (castPtr ptr) 0 count
+              let count' = min count (bufferElems buf)
+              in bufReadNBNonEmpty h_ buf (castPtr ptr) 0 count'
 
 haFD :: Handle__ -> FD
 haFD h_@Handle__{..} =
diff --git a/GHC/Read.lhs b/GHC/Read.lhs
--- a/GHC/Read.lhs
+++ b/GHC/Read.lhs
@@ -1,6 +1,7 @@
 \begin{code}
 {-# LANGUAGE Trustworthy #-}
-{-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving #-}
+{-# LANGUAGE CPP, NoImplicitPrelude, StandaloneDeriving, PatternGuards,
+             ScopedTypeVariables #-}
 {-# OPTIONS_HADDOCK hide #-}
 
 -----------------------------------------------------------------------------
@@ -69,9 +70,10 @@
 #endif
 import GHC.Num
 import GHC.Real
-import GHC.Float ()
+import GHC.Float
 import GHC.Show
 import GHC.Base
+import GHC.Err
 import GHC.Arr
 -- For defining instances for the generic deriving mechanism
 import GHC.Generics (Arity(..), Associativity(..), Fixity(..))
@@ -276,6 +278,10 @@
 -- ^ Parse a single lexeme
 lexP = lift L.lex
 
+lexP' :: ReadPrec L.Lexeme'
+-- ^ Parse a single lexeme
+lexP' = lift L.lex'
+
 paren :: ReadPrec a -> ReadPrec a
 -- ^ @(paren p)@ parses \"(P0)\"
 --      where @p@ parses \"P0\" in precedence context zero
@@ -455,28 +461,33 @@
 %*********************************************************
 
 \begin{code}
-readNumber :: Num a => (L.Lexeme -> ReadPrec a) -> ReadPrec a
+readNumber :: Num a => (L.Lexeme' -> ReadPrec a) -> ReadPrec a
 -- Read a signed number
 readNumber convert =
   parens
-  ( do x <- lexP
+  ( do x <- lexP'
        case x of
-         L.Symbol "-" -> do y <- lexP
-                            n <- convert y
-                            return (negate n)
+         L.Symbol' "-" -> do y <- lexP'
+                             n <- convert y
+                             return (negate n)
 
          _   -> convert x
   )
 
 
-convertInt :: Num a => L.Lexeme -> ReadPrec a
-convertInt (L.Int i) = return (fromInteger i)
-convertInt _         = pfail
+convertInt :: Num a => L.Lexeme' -> ReadPrec a
+convertInt (L.Number n)
+ | Just i <- L.numberToInteger n = return (fromInteger i)
+convertInt _ = pfail
 
-convertFrac :: Fractional a => L.Lexeme -> ReadPrec a
-convertFrac (L.Int i) = return (fromInteger i)
-convertFrac (L.Rat r) = return (fromRational r)
-convertFrac _         = pfail
+convertFrac :: forall a . RealFloat a => L.Lexeme' -> ReadPrec a
+convertFrac (L.Ident' "NaN")      = return (0 / 0)
+convertFrac (L.Ident' "Infinity") = return (1 / 0)
+convertFrac (L.Number n) = let resRange = floatRange (undefined :: a)
+                           in case L.numberToRangedRational resRange n of
+                              Nothing -> return (1 / 0)
+                              Just rat -> return $ fromRational rat
+convertFrac _            = pfail
 
 instance Read Int where
   readPrec     = readNumber convertInt
diff --git a/System/IO.hs b/System/IO.hs
--- a/System/IO.hs
+++ b/System/IO.hs
@@ -1,5 +1,6 @@
 {-# LANGUAGE Trustworthy #-}
 {-# LANGUAGE CPP, NoImplicitPrelude #-}
+{-# LANGUAGE ForeignFunctionInterface #-}
 
 -----------------------------------------------------------------------------
 -- |
@@ -240,6 +241,9 @@
 import Data.List
 import Data.Maybe
 import Foreign.C.Error
+#ifdef mingw32_HOST_OS
+import Foreign.C.String
+#endif
 import Foreign.C.Types
 import System.Posix.Internals
 import System.Posix.Types
@@ -563,13 +567,6 @@
          _                      -> error "bug in System.IO.openTempFile"
 
 #ifndef __NHC__
-    oflags1 = rw_flags .|. o_EXCL
-
-    binary_flags
-      | binary    = o_BINARY
-      | otherwise = 0
-
-    oflags = oflags1 .|. binary_flags
 #endif
 
 #if defined(__NHC__)
@@ -577,24 +574,19 @@
                         return (filepath, h)
 #elif defined(__GLASGOW_HASKELL__)
     findTempName x = do
-      fd <- withFilePath filepath $ \ f ->
-              c_open f oflags mode
-      if fd < 0
-       then do
-         errno <- getErrno
-         if errno == eEXIST
-           then findTempName (x+1)
-           else ioError (errnoToIOError loc errno Nothing (Just tmp_dir))
-       else do
-
-         (fD,fd_type) <- FD.mkFD fd ReadWriteMode Nothing{-no stat-}
-                              False{-is_socket-} 
-                              True{-is_nonblock-}
+      r <- openNewFile filepath binary mode
+      case r of
+        FileExists -> findTempName (x + 1)
+        OpenNewError errno -> ioError (errnoToIOError loc errno Nothing (Just tmp_dir))
+        NewFileCreated fd -> do
+          (fD,fd_type) <- FD.mkFD fd ReadWriteMode Nothing{-no stat-}
+                               False{-is_socket-}
+                               True{-is_nonblock-}
 
-         enc <- getLocaleEncoding
-         h <- mkHandleFromFD fD fd_type filepath ReadWriteMode False{-set non-block-} (Just enc)
+          enc <- getLocaleEncoding
+          h <- mkHandleFromFD fD fd_type filepath ReadWriteMode False{-set non-block-} (Just enc)
 
-         return (filepath, h)
+          return (filepath, h)
 #else
          h <- fdToHandle fd `onException` c_close fd
          return (filepath, h)
@@ -613,6 +605,52 @@
 
 #if __HUGS__
         fdToHandle fd   = openFd (fromIntegral fd) False ReadWriteMode binary
+#endif
+
+#if defined(__GLASGOW_HASKELL__)
+data OpenNewFileResult
+  = NewFileCreated CInt
+  | FileExists
+  | OpenNewError Errno
+
+openNewFile :: FilePath -> Bool -> CMode -> IO OpenNewFileResult
+openNewFile filepath binary mode = do
+  let oflags1 = rw_flags .|. o_EXCL
+
+      binary_flags
+        | binary    = o_BINARY
+        | otherwise = 0
+
+      oflags = oflags1 .|. binary_flags
+  fd <- withFilePath filepath $ \ f ->
+          c_open f oflags mode
+  if fd < 0
+    then do
+      errno <- getErrno
+      case errno of
+        _ | errno == eEXIST -> return FileExists
+# ifdef mingw32_HOST_OS
+        -- If c_open throws EACCES on windows, it could mean that filepath is a
+        -- directory. In this case, we want to return FileExists so that the
+        -- enclosing openTempFile can try again instead of failing outright.
+        -- See bug #4968.
+        _ | errno == eACCES -> do
+          withCString filepath $ \path -> do
+          -- There is a race here: the directory might have been moved or
+          -- deleted between the c_open call and the next line, but there
+          -- doesn't seem to be any direct way to detect that the c_open call
+          -- failed because of an existing directory.
+          exists <- c_fileExists path
+          return $ if exists
+            then FileExists
+            else OpenNewError errno
+# endif
+        _ -> return (OpenNewError errno)
+    else return (NewFileCreated fd)
+
+# ifdef mingw32_HOST_OS
+foreign import ccall "file_exists" c_fileExists :: CString -> IO Bool
+# endif
 #endif
 
 -- XXX Should use filepath library
diff --git a/Text/Read/Lex.hs b/Text/Read/Lex.hs
--- a/Text/Read/Lex.hs
+++ b/Text/Read/Lex.hs
@@ -18,9 +18,13 @@
 module Text.Read.Lex
   -- lexing types
   ( Lexeme(..)  -- :: *; Show, Eq
+  , Lexeme'(..)
 
+  , numberToInteger, numberToRangedRational
+
   -- lexer
   , lex         -- :: ReadP Lexeme      Skips leading spaces
+  , lex'        -- :: ReadP Lexeme      Skips leading spaces
   , hsLex       -- :: ReadP String
   , lexChar     -- :: ReadP Char        Reads just one char, with H98 escapes
 
@@ -70,12 +74,68 @@
   | EOF
  deriving (Eq, Show)
 
+data Lexeme' = Ident' String
+             | Punc'   String
+             | Symbol' String
+             | Number Number
+ deriving (Eq, Show)
+
+data Number = MkNumber Int              -- Base
+                       Digits           -- Integral part
+            | MkDecimal Digits          -- Integral part
+                        (Maybe Digits)  -- Fractional part
+                        (Maybe Integer) -- Exponent
+ deriving (Eq, Show)
+
+numberToInteger :: Number -> Maybe Integer
+numberToInteger (MkNumber base iPart) = Just (val (fromIntegral base) 0 iPart)
+numberToInteger (MkDecimal iPart Nothing Nothing) = Just (val 10 0 iPart)
+numberToInteger _ = Nothing
+
+numberToRangedRational :: (Int, Int) -> Number
+                       -> Maybe Rational -- Nothing = Inf
+numberToRangedRational (neg, pos) n@(MkDecimal iPart mFPart (Just exp))
+    = let mFirstDigit = case dropWhile (0 ==) iPart of
+                        iPart'@(_ : _) -> Just (length iPart')
+                        [] -> case mFPart of
+                              Nothing -> Nothing
+                              Just fPart ->
+                                  case span (0 ==) fPart of
+                                  (_, []) -> Nothing
+                                  (zeroes, _) ->
+                                      Just (negate (length zeroes))
+      in case mFirstDigit of
+         Nothing -> Just 0
+         Just firstDigit ->
+             let firstDigit' = firstDigit + fromInteger exp
+             in if firstDigit' > (pos + 3)
+                then Nothing
+                else if firstDigit' < (neg - 3)
+                then Just 0
+                else Just (numberToRational n)
+numberToRangedRational _ n = Just (numberToRational n)
+
+numberToRational :: Number -> Rational
+numberToRational (MkNumber base iPart) = val (fromIntegral base) 0 iPart % 1
+numberToRational (MkDecimal iPart mFPart mExp)
+ = let i = val 10 0 iPart
+   in case (mFPart, mExp) of
+      (Nothing, Nothing)     -> i % 1
+      (Nothing, Just exp)
+       | exp >= 0            -> (i * (10 ^ exp)) % 1
+       | otherwise           -> i % (10 ^ (- exp))
+      (Just fPart, Nothing)  -> fracExp 0   i fPart
+      (Just fPart, Just exp) -> fracExp exp i fPart
+
 -- -----------------------------------------------------------------------------
 -- Lexing
 
 lex :: ReadP Lexeme
 lex = skipSpaces >> lexToken
 
+lex' :: ReadP Lexeme'
+lex' = skipSpaces >> lexToken'
+
 hsLex :: ReadP String
 -- ^ Haskell lexer: returns the lexed string, rather than the lexeme
 hsLex = do skipSpaces
@@ -91,7 +151,12 @@
            lexId      +++
            lexNumber
 
+lexToken' :: ReadP Lexeme'
+lexToken' = lexSymbol' +++
+            lexId'     +++
+            fmap Number lexNumber'
 
+
 -- ----------------------------------------------------------------------
 -- End of file
 lexEOF :: ReadP Lexeme
@@ -123,6 +188,17 @@
   isSymbolChar c = c `elem` "!@#$%&*+./<=>?\\^|:-~"
   reserved_ops   = ["..", "::", "=", "\\", "|", "<-", "->", "@", "~", "=>"]
 
+lexSymbol' :: ReadP Lexeme'
+lexSymbol' =
+  do s <- munch1 isSymbolChar
+     if s `elem` reserved_ops then
+        return (Punc' s)         -- Reserved-ops count as punctuation
+      else
+        return (Symbol' s)
+ where
+  isSymbolChar c = c `elem` "!@#$%&*+./<=>?\\^|:-~"
+  reserved_ops   = ["..", "::", "=", "\\", "|", "<-", "->", "@", "~", "=>"]
+
 -- ----------------------------------------------------------------------
 -- identifiers
 
@@ -142,6 +218,15 @@
     isIdsChar c = isAlpha c || c == '_'
     isIdfChar c = isAlphaNum c || c `elem` "_'"
 
+lexId' :: ReadP Lexeme'
+lexId' = do c <- satisfy isIdsChar
+            s <- munch isIdfChar
+            return (Ident' (c:s))
+  where
+          -- Identifiers can start with a '_'
+    isIdsChar c = isAlpha c || c == '_'
+    isIdfChar c = isAlphaNum c || c `elem` "_'"
+
 #ifndef __GLASGOW_HASKELL__
 infinity, notANumber :: Rational
 infinity   = 1 :% 0
@@ -314,6 +399,12 @@
                         -- If that fails, try for a decimal number
     lexDecNumber        -- Start with ordinary digits
 
+lexNumber' :: ReadP Number
+lexNumber'
+  = lexHexOct'  <++      -- First try for hex or octal 0x, 0o etc
+                         -- If that fails, try for a decimal number
+    lexDecNumber'
+
 lexHexOct :: ReadP Lexeme
 lexHexOct
   = do  _ <- char '0'
@@ -321,6 +412,13 @@
         digits <- lexDigits base
         return (Int (val (fromIntegral base) 0 digits))
 
+lexHexOct' :: ReadP Number
+lexHexOct'
+  = do  _ <- char '0'
+        base <- lexBaseChar
+        digits <- lexDigits base
+        return (MkNumber base digits)
+
 lexBaseChar :: ReadP Int
 -- Lex a single character indicating the base; fail if not there
 lexBaseChar = do { c <- get;
@@ -353,6 +451,13 @@
     -- Instead of calculating the fractional part alone, then
     -- adding the integral part and finally multiplying with
     -- 10 ^ exp if an exponent was given, do it all at once.
+
+lexDecNumber' :: ReadP Number
+lexDecNumber' =
+  do xs    <- lexDigits 10
+     mFrac <- lexFrac <++ return Nothing
+     mExp  <- lexExp  <++ return Nothing
+     return (MkDecimal xs mFrac mExp)
 
 lexFrac :: ReadP (Maybe Digits)
 -- Read the fractional part; fail if it doesn't
diff --git a/base.cabal b/base.cabal
--- a/base.cabal
+++ b/base.cabal
@@ -1,5 +1,5 @@
 name:           base
-version:        4.5.0.0
+version:        4.5.1.0
 license:        BSD3
 license-file:   LICENSE
 maintainer:     libraries@haskell.org
diff --git a/cbits/Win32Utils.c b/cbits/Win32Utils.c
--- a/cbits/Win32Utils.c
+++ b/cbits/Win32Utils.c
@@ -122,5 +122,11 @@
     return t;
 }
 
+BOOL file_exists(LPCTSTR path)
+{
+    DWORD r = GetFileAttributes(path);
+    return r != INVALID_FILE_ATTRIBUTES;
+}
+
 #endif
 
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.67 for Haskell base package 1.0.
+# Generated by GNU Autoconf 2.68 for Haskell base package 1.0.
 #
 # Report bugs to <libraries@haskell.org>.
 #
@@ -91,6 +91,7 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -216,11 +217,18 @@
   # We cannot yet assume a decent shell, so we have to provide a
 	# neutralization value for shells without unset; and this also
 	# works around shells that cannot unset nonexistent variables.
+	# Preserve -v and -x to the replacement shell.
 	BASH_ENV=/dev/null
 	ENV=/dev/null
 	(unset BASH_ENV) >/dev/null 2>&1 && unset BASH_ENV ENV
 	export CONFIG_SHELL
-	exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}
+	case $- in # ((((
+	  *v*x* | *x*v* ) as_opts=-vx ;;
+	  *v* ) as_opts=-v ;;
+	  *x* ) as_opts=-x ;;
+	  * ) as_opts= ;;
+	esac
+	exec "$CONFIG_SHELL" $as_opts "$as_myself" ${1+"$@"}
 fi
 
     if test x$as_have_required = xno; then :
@@ -1068,7 +1076,7 @@
     $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2
     expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&
       $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2
-    : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}
+    : "${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}"
     ;;
 
   esac
@@ -1361,7 +1369,7 @@
 if $ac_init_version; then
   cat <<\_ACEOF
 Haskell base package configure 1.0
-generated by GNU Autoconf 2.67
+generated by GNU Autoconf 2.68
 
 Copyright (C) 2010 Free Software Foundation, Inc.
 This configure script is free software; the Free Software Foundation
@@ -1407,7 +1415,7 @@
 
 	ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_compile
@@ -1421,7 +1429,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=no"
@@ -1462,7 +1470,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_type
 
@@ -1498,7 +1506,7 @@
 
     ac_retval=1
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_cpp
@@ -1540,7 +1548,7 @@
        ac_retval=$ac_status
 fi
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_run
@@ -1554,7 +1562,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1572,7 +1580,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_compile
 
@@ -1584,10 +1592,10 @@
 ac_fn_c_check_header_mongrel ()
 {
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
-  if eval "test \"\${$3+set}\"" = set; then :
+  if eval \${$3+:} false; then :
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 fi
 eval ac_res=\$$3
@@ -1654,7 +1662,7 @@
 esac
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   eval "$3=\$ac_header_compiler"
@@ -1663,7 +1671,7 @@
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
 fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_header_mongrel
 
@@ -1708,7 +1716,7 @@
   # interfere with the next link command; also delete a directory that is
   # left behind by Apple's compiler.  We do this before executing the actions.
   rm -rf conftest.dSYM conftest_ipa8_conftest.oo
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_try_link
@@ -1721,7 +1729,7 @@
   as_lineno=${as_lineno-"$1"} as_lineno_stack=as_lineno_stack=$as_lineno_stack
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $2" >&5
 $as_echo_n "checking for $2... " >&6; }
-if eval "test \"\${$3+set}\"" = set; then :
+if eval \${$3+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -1776,7 +1784,7 @@
 eval ac_res=\$$3
 	       { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5
 $as_echo "$ac_res" >&6; }
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
 
 } # ac_fn_c_check_func
 
@@ -1953,7 +1961,7 @@
 rm -f conftest.val
 
   fi
-  eval $as_lineno_stack; test "x$as_lineno_stack" = x && { as_lineno=; unset as_lineno;}
+  eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno
   as_fn_set_status $ac_retval
 
 } # ac_fn_c_compute_int
@@ -1962,7 +1970,7 @@
 running configure, to aid debugging if configure makes a mistake.
 
 It was created by Haskell base package $as_me 1.0, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   $ $0 $@
 
@@ -2220,7 +2228,7 @@
       || { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "failed to load site script $ac_site_file
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
   fi
 done
 
@@ -2332,7 +2340,7 @@
 set dummy ${ac_tool_prefix}gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2372,7 +2380,7 @@
 set dummy gcc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -2425,7 +2433,7 @@
 set dummy ${ac_tool_prefix}cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2465,7 +2473,7 @@
 set dummy cc; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2524,7 +2532,7 @@
 set dummy $ac_tool_prefix$ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_CC+set}" = set; then :
+if ${ac_cv_prog_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$CC"; then
@@ -2568,7 +2576,7 @@
 set dummy $ac_prog; ac_word=$2
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
 $as_echo_n "checking for $ac_word... " >&6; }
-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then :
+if ${ac_cv_prog_ac_ct_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -n "$ac_ct_CC"; then
@@ -2623,7 +2631,7 @@
 test -z "$CC" && { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "no acceptable C compiler found in \$PATH
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 
 # Provide some information about the compiler.
 $as_echo "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5
@@ -2738,7 +2746,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "C compiler cannot create executables
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 else
   { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
 $as_echo "yes" >&6; }
@@ -2781,7 +2789,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of executables: cannot compile and link
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest conftest$ac_cv_exeext
 { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5
@@ -2840,7 +2848,7 @@
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot run C compiled programs.
 If you meant to cross compile, use \`--host'.
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
     fi
   fi
 fi
@@ -2851,7 +2859,7 @@
 ac_clean_files=$ac_clean_files_save
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5
 $as_echo_n "checking for suffix of object files... " >&6; }
-if test "${ac_cv_objext+set}" = set; then :
+if ${ac_cv_objext+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2892,7 +2900,7 @@
 { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "cannot compute suffix of object files: cannot compile
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 rm -f conftest.$ac_cv_objext conftest.$ac_ext
 fi
@@ -2902,7 +2910,7 @@
 ac_objext=$OBJEXT
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether we are using the GNU C compiler" >&5
 $as_echo_n "checking whether we are using the GNU C compiler... " >&6; }
-if test "${ac_cv_c_compiler_gnu+set}" = set; then :
+if ${ac_cv_c_compiler_gnu+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -2939,7 +2947,7 @@
 ac_save_CFLAGS=$CFLAGS
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking whether $CC accepts -g" >&5
 $as_echo_n "checking whether $CC accepts -g... " >&6; }
-if test "${ac_cv_prog_cc_g+set}" = set; then :
+if ${ac_cv_prog_cc_g+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_save_c_werror_flag=$ac_c_werror_flag
@@ -3017,7 +3025,7 @@
 fi
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for $CC option to accept ISO C89" >&5
 $as_echo_n "checking for $CC option to accept ISO C89... " >&6; }
-if test "${ac_cv_prog_cc_c89+set}" = set; then :
+if ${ac_cv_prog_cc_c89+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_prog_cc_c89=no
@@ -3134,7 +3142,7 @@
   CPP=
 fi
 if test -z "$CPP"; then
-  if test "${ac_cv_prog_CPP+set}" = set; then :
+  if ${ac_cv_prog_CPP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
       # Double quotes because CPP needs to be expanded
@@ -3250,7 +3258,7 @@
   { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error $? "C preprocessor \"$CPP\" fails sanity check
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
 fi
 
 ac_ext=c
@@ -3262,7 +3270,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for grep that handles long lines and -e" >&5
 $as_echo_n "checking for grep that handles long lines and -e... " >&6; }
-if test "${ac_cv_path_GREP+set}" = set; then :
+if ${ac_cv_path_GREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if test -z "$GREP"; then
@@ -3325,7 +3333,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for egrep" >&5
 $as_echo_n "checking for egrep... " >&6; }
-if test "${ac_cv_path_EGREP+set}" = set; then :
+if ${ac_cv_path_EGREP+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if echo a | $GREP -E '(a|b)' >/dev/null 2>&1
@@ -3392,7 +3400,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3520,7 +3528,7 @@
 
 
 ac_fn_c_check_type "$LINENO" "long long" "ac_cv_type_long_long" "$ac_includes_default"
-if test "x$ac_cv_type_long_long" = x""yes; then :
+if test "x$ac_cv_type_long_long" = xyes; then :
 
 cat >>confdefs.h <<_ACEOF
 #define HAVE_LONG_LONG 1
@@ -3532,7 +3540,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for ANSI C header files" >&5
 $as_echo_n "checking for ANSI C header files... " >&6; }
-if test "${ac_cv_header_stdc+set}" = set; then :
+if ${ac_cv_header_stdc+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   cat confdefs.h - <<_ACEOF >conftest.$ac_ext
@@ -3669,7 +3677,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for special C compiler options needed for large files" >&5
 $as_echo_n "checking for special C compiler options needed for large files... " >&6; }
-if test "${ac_cv_sys_largefile_CC+set}" = set; then :
+if ${ac_cv_sys_largefile_CC+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_cv_sys_largefile_CC=no
@@ -3720,7 +3728,7 @@
 
   { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _FILE_OFFSET_BITS value needed for large files" >&5
 $as_echo_n "checking for _FILE_OFFSET_BITS value needed for large files... " >&6; }
-if test "${ac_cv_sys_file_offset_bits+set}" = set; then :
+if ${ac_cv_sys_file_offset_bits+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -3789,7 +3797,7 @@
   if test $ac_cv_sys_file_offset_bits = unknown; then
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking for _LARGE_FILES value needed for large files" >&5
 $as_echo_n "checking for _LARGE_FILES value needed for large files... " >&6; }
-if test "${ac_cv_sys_large_files+set}" = set; then :
+if ${ac_cv_sys_large_files+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   while :; do
@@ -3862,14 +3870,14 @@
 for ac_header in wctype.h
 do :
   ac_fn_c_check_header_mongrel "$LINENO" "wctype.h" "ac_cv_header_wctype_h" "$ac_includes_default"
-if test "x$ac_cv_header_wctype_h" = x""yes; then :
+if test "x$ac_cv_header_wctype_h" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_WCTYPE_H 1
 _ACEOF
  for ac_func in iswspace
 do :
   ac_fn_c_check_func "$LINENO" "iswspace" "ac_cv_func_iswspace"
-if test "x$ac_cv_func_iswspace" = x""yes; then :
+if test "x$ac_cv_func_iswspace" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_ISWSPACE 1
 _ACEOF
@@ -3885,7 +3893,7 @@
 for ac_func in lstat
 do :
   ac_fn_c_check_func "$LINENO" "lstat" "ac_cv_func_lstat"
-if test "x$ac_cv_func_lstat" = x""yes; then :
+if test "x$ac_cv_func_lstat" = xyes; then :
   cat >>confdefs.h <<_ACEOF
 #define HAVE_LSTAT 1
 _ACEOF
@@ -3984,7 +3992,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for char" >&5
 $as_echo_n "checking Haskell type for char... " >&6; }
-    if test "${fptools_cv_htype_char+set}" = set; then :
+    if ${fptools_cv_htype_char+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4407,7 +4415,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for signed char" >&5
 $as_echo_n "checking Haskell type for signed char... " >&6; }
-    if test "${fptools_cv_htype_signed_char+set}" = set; then :
+    if ${fptools_cv_htype_signed_char+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -4830,7 +4838,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned char" >&5
 $as_echo_n "checking Haskell type for unsigned char... " >&6; }
-    if test "${fptools_cv_htype_unsigned_char+set}" = set; then :
+    if ${fptools_cv_htype_unsigned_char+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5253,7 +5261,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for short" >&5
 $as_echo_n "checking Haskell type for short... " >&6; }
-    if test "${fptools_cv_htype_short+set}" = set; then :
+    if ${fptools_cv_htype_short+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -5676,7 +5684,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned short" >&5
 $as_echo_n "checking Haskell type for unsigned short... " >&6; }
-    if test "${fptools_cv_htype_unsigned_short+set}" = set; then :
+    if ${fptools_cv_htype_unsigned_short+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6099,7 +6107,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for int" >&5
 $as_echo_n "checking Haskell type for int... " >&6; }
-    if test "${fptools_cv_htype_int+set}" = set; then :
+    if ${fptools_cv_htype_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6522,7 +6530,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned int" >&5
 $as_echo_n "checking Haskell type for unsigned int... " >&6; }
-    if test "${fptools_cv_htype_unsigned_int+set}" = set; then :
+    if ${fptools_cv_htype_unsigned_int+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -6945,7 +6953,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long" >&5
 $as_echo_n "checking Haskell type for long... " >&6; }
-    if test "${fptools_cv_htype_long+set}" = set; then :
+    if ${fptools_cv_htype_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -7368,7 +7376,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long" >&5
 $as_echo_n "checking Haskell type for unsigned long... " >&6; }
-    if test "${fptools_cv_htype_unsigned_long+set}" = set; then :
+    if ${fptools_cv_htype_unsigned_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -7792,7 +7800,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for long long" >&5
 $as_echo_n "checking Haskell type for long long... " >&6; }
-    if test "${fptools_cv_htype_long_long+set}" = set; then :
+    if ${fptools_cv_htype_long_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -8215,7 +8223,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for unsigned long long" >&5
 $as_echo_n "checking Haskell type for unsigned long long... " >&6; }
-    if test "${fptools_cv_htype_unsigned_long_long+set}" = set; then :
+    if ${fptools_cv_htype_unsigned_long_long+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -8639,7 +8647,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for float" >&5
 $as_echo_n "checking Haskell type for float... " >&6; }
-    if test "${fptools_cv_htype_float+set}" = set; then :
+    if ${fptools_cv_htype_float+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -9062,7 +9070,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for double" >&5
 $as_echo_n "checking Haskell type for double... " >&6; }
-    if test "${fptools_cv_htype_double+set}" = set; then :
+    if ${fptools_cv_htype_double+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -9485,7 +9493,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ptrdiff_t" >&5
 $as_echo_n "checking Haskell type for ptrdiff_t... " >&6; }
-    if test "${fptools_cv_htype_ptrdiff_t+set}" = set; then :
+    if ${fptools_cv_htype_ptrdiff_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -9908,7 +9916,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for size_t" >&5
 $as_echo_n "checking Haskell type for size_t... " >&6; }
-    if test "${fptools_cv_htype_size_t+set}" = set; then :
+    if ${fptools_cv_htype_size_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -10331,7 +10339,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for wchar_t" >&5
 $as_echo_n "checking Haskell type for wchar_t... " >&6; }
-    if test "${fptools_cv_htype_wchar_t+set}" = set; then :
+    if ${fptools_cv_htype_wchar_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -10754,7 +10762,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for sig_atomic_t" >&5
 $as_echo_n "checking Haskell type for sig_atomic_t... " >&6; }
-    if test "${fptools_cv_htype_sig_atomic_t+set}" = set; then :
+    if ${fptools_cv_htype_sig_atomic_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -11177,7 +11185,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for clock_t" >&5
 $as_echo_n "checking Haskell type for clock_t... " >&6; }
-    if test "${fptools_cv_htype_clock_t+set}" = set; then :
+    if ${fptools_cv_htype_clock_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -11600,7 +11608,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for time_t" >&5
 $as_echo_n "checking Haskell type for time_t... " >&6; }
-    if test "${fptools_cv_htype_time_t+set}" = set; then :
+    if ${fptools_cv_htype_time_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12023,7 +12031,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for useconds_t" >&5
 $as_echo_n "checking Haskell type for useconds_t... " >&6; }
-    if test "${fptools_cv_htype_useconds_t+set}" = set; then :
+    if ${fptools_cv_htype_useconds_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12445,7 +12453,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for suseconds_t" >&5
 $as_echo_n "checking Haskell type for suseconds_t... " >&6; }
-    if test "${fptools_cv_htype_suseconds_t+set}" = set; then :
+    if ${fptools_cv_htype_suseconds_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -12869,7 +12877,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for dev_t" >&5
 $as_echo_n "checking Haskell type for dev_t... " >&6; }
-    if test "${fptools_cv_htype_dev_t+set}" = set; then :
+    if ${fptools_cv_htype_dev_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13292,7 +13300,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ino_t" >&5
 $as_echo_n "checking Haskell type for ino_t... " >&6; }
-    if test "${fptools_cv_htype_ino_t+set}" = set; then :
+    if ${fptools_cv_htype_ino_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -13715,7 +13723,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for mode_t" >&5
 $as_echo_n "checking Haskell type for mode_t... " >&6; }
-    if test "${fptools_cv_htype_mode_t+set}" = set; then :
+    if ${fptools_cv_htype_mode_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14138,7 +14146,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for off_t" >&5
 $as_echo_n "checking Haskell type for off_t... " >&6; }
-    if test "${fptools_cv_htype_off_t+set}" = set; then :
+    if ${fptools_cv_htype_off_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14561,7 +14569,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for pid_t" >&5
 $as_echo_n "checking Haskell type for pid_t... " >&6; }
-    if test "${fptools_cv_htype_pid_t+set}" = set; then :
+    if ${fptools_cv_htype_pid_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -14984,7 +14992,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for gid_t" >&5
 $as_echo_n "checking Haskell type for gid_t... " >&6; }
-    if test "${fptools_cv_htype_gid_t+set}" = set; then :
+    if ${fptools_cv_htype_gid_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -15407,7 +15415,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uid_t" >&5
 $as_echo_n "checking Haskell type for uid_t... " >&6; }
-    if test "${fptools_cv_htype_uid_t+set}" = set; then :
+    if ${fptools_cv_htype_uid_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -15830,7 +15838,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for cc_t" >&5
 $as_echo_n "checking Haskell type for cc_t... " >&6; }
-    if test "${fptools_cv_htype_cc_t+set}" = set; then :
+    if ${fptools_cv_htype_cc_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -16253,7 +16261,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for speed_t" >&5
 $as_echo_n "checking Haskell type for speed_t... " >&6; }
-    if test "${fptools_cv_htype_speed_t+set}" = set; then :
+    if ${fptools_cv_htype_speed_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -16676,7 +16684,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for tcflag_t" >&5
 $as_echo_n "checking Haskell type for tcflag_t... " >&6; }
-    if test "${fptools_cv_htype_tcflag_t+set}" = set; then :
+    if ${fptools_cv_htype_tcflag_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -17099,7 +17107,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for nlink_t" >&5
 $as_echo_n "checking Haskell type for nlink_t... " >&6; }
-    if test "${fptools_cv_htype_nlink_t+set}" = set; then :
+    if ${fptools_cv_htype_nlink_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -17522,7 +17530,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for ssize_t" >&5
 $as_echo_n "checking Haskell type for ssize_t... " >&6; }
-    if test "${fptools_cv_htype_ssize_t+set}" = set; then :
+    if ${fptools_cv_htype_ssize_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -17945,7 +17953,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for rlim_t" >&5
 $as_echo_n "checking Haskell type for rlim_t... " >&6; }
-    if test "${fptools_cv_htype_rlim_t+set}" = set; then :
+    if ${fptools_cv_htype_rlim_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -18369,7 +18377,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intptr_t" >&5
 $as_echo_n "checking Haskell type for intptr_t... " >&6; }
-    if test "${fptools_cv_htype_intptr_t+set}" = set; then :
+    if ${fptools_cv_htype_intptr_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -18792,7 +18800,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintptr_t" >&5
 $as_echo_n "checking Haskell type for uintptr_t... " >&6; }
-    if test "${fptools_cv_htype_uintptr_t+set}" = set; then :
+    if ${fptools_cv_htype_uintptr_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -19215,7 +19223,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for intmax_t" >&5
 $as_echo_n "checking Haskell type for intmax_t... " >&6; }
-    if test "${fptools_cv_htype_intmax_t+set}" = set; then :
+    if ${fptools_cv_htype_intmax_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -19638,7 +19646,7 @@
 
     { $as_echo "$as_me:${as_lineno-$LINENO}: checking Haskell type for uintmax_t" >&5
 $as_echo_n "checking Haskell type for uintmax_t... " >&6; }
-    if test "${fptools_cv_htype_uintmax_t+set}" = set; then :
+    if ${fptools_cv_htype_uintmax_t+:} false; then :
   $as_echo_n "(cached) " >&6
 else
 
@@ -20058,7 +20066,7 @@
 as_fp_Cache=`$as_echo "fp_cv_const_$fp_const_name" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of $fp_const_name" >&5
 $as_echo_n "checking value of $fp_const_name... " >&6; }
-if eval "test \"\${$as_fp_Cache+set}\"" = set; then :
+if eval \${$as_fp_Cache+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "$fp_const_name" "fp_check_const_result"        "#include <stdio.h>
@@ -20088,7 +20096,7 @@
 as_fp_Cache=`$as_echo "fp_cv_const_$fp_const_name" | $as_tr_sh`
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of $fp_const_name" >&5
 $as_echo_n "checking value of $fp_const_name... " >&6; }
-if eval "test \"\${$as_fp_Cache+set}\"" = set; then :
+if eval \${$as_fp_Cache+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "$fp_const_name" "fp_check_const_result"        "
@@ -20116,7 +20124,7 @@
 
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking value of O_BINARY" >&5
 $as_echo_n "checking value of O_BINARY... " >&6; }
-if test "${fp_cv_const_O_BINARY+set}" = set; then :
+if ${fp_cv_const_O_BINARY+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "O_BINARY" "fp_check_const_result"        "#include <fcntl.h>
@@ -20149,7 +20157,7 @@
 # to give prototype text.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing iconv" >&5
 $as_echo_n "checking for library containing iconv... " >&6; }
-if test "${ac_cv_search_iconv+set}" = set; then :
+if ${ac_cv_search_iconv+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -20182,11 +20190,11 @@
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test "${ac_cv_search_iconv+set}" = set; then :
+  if ${ac_cv_search_iconv+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_iconv+set}" = set; then :
+if ${ac_cv_search_iconv+:} false; then :
 
 else
   ac_cv_search_iconv=no
@@ -20208,7 +20216,7 @@
 # determine the current locale's character encoding.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking for library containing locale_charset" >&5
 $as_echo_n "checking for library containing locale_charset... " >&6; }
-if test "${ac_cv_search_locale_charset+set}" = set; then :
+if ${ac_cv_search_locale_charset+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   ac_func_search_save_LIBS=$LIBS
@@ -20235,11 +20243,11 @@
 fi
 rm -f core conftest.err conftest.$ac_objext \
     conftest$ac_exeext
-  if test "${ac_cv_search_locale_charset+set}" = set; then :
+  if ${ac_cv_search_locale_charset+:} false; then :
   break
 fi
 done
-if test "${ac_cv_search_locale_charset+set}" = set; then :
+if ${ac_cv_search_locale_charset+:} false; then :
 
 else
   ac_cv_search_locale_charset=no
@@ -20268,7 +20276,7 @@
 # This bug is HP SR number 8606223364.
 { $as_echo "$as_me:${as_lineno-$LINENO}: checking size of struct MD5Context" >&5
 $as_echo_n "checking size of struct MD5Context... " >&6; }
-if test "${ac_cv_sizeof_struct_MD5Context+set}" = set; then :
+if ${ac_cv_sizeof_struct_MD5Context+:} false; then :
   $as_echo_n "(cached) " >&6
 else
   if ac_fn_c_compute_int "$LINENO" "(long int) (sizeof (struct MD5Context))" "ac_cv_sizeof_struct_MD5Context"        "#include \"include/md5.h\"
@@ -20279,7 +20287,7 @@
      { { $as_echo "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5
 $as_echo "$as_me: error: in \`$ac_pwd':" >&2;}
 as_fn_error 77 "cannot compute sizeof (struct MD5Context)
-See \`config.log' for more details" "$LINENO" 5 ; }
+See \`config.log' for more details" "$LINENO" 5; }
    else
      ac_cv_sizeof_struct_MD5Context=0
    fi
@@ -20365,10 +20373,21 @@
      :end' >>confcache
 if diff "$cache_file" confcache >/dev/null 2>&1; then :; else
   if test -w "$cache_file"; then
-    test "x$cache_file" != "x/dev/null" &&
+    if test "x$cache_file" != "x/dev/null"; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: updating cache $cache_file" >&5
 $as_echo "$as_me: updating cache $cache_file" >&6;}
-    cat confcache >$cache_file
+      if test ! -f "$cache_file" || test -h "$cache_file"; then
+	cat confcache >"$cache_file"
+      else
+        case $cache_file in #(
+        */* | ?:*)
+	  mv -f confcache "$cache_file"$$ &&
+	  mv -f "$cache_file"$$ "$cache_file" ;; #(
+        *)
+	  mv -f confcache "$cache_file" ;;
+	esac
+      fi
+    fi
   else
     { $as_echo "$as_me:${as_lineno-$LINENO}: not updating unwritable cache $cache_file" >&5
 $as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}
@@ -20400,7 +20419,7 @@
 
 
 
-: ${CONFIG_STATUS=./config.status}
+: "${CONFIG_STATUS=./config.status}"
 ac_write_fail=0
 ac_clean_files_save=$ac_clean_files
 ac_clean_files="$ac_clean_files $CONFIG_STATUS"
@@ -20501,6 +20520,7 @@
 IFS=" ""	$as_nl"
 
 # Find who we are.  Look in the path if we contain no directory separator.
+as_myself=
 case $0 in #((
   *[\\/]* ) as_myself=$0 ;;
   *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -20808,7 +20828,7 @@
 # values after options handling.
 ac_log="
 This file was extended by Haskell base package $as_me 1.0, which was
-generated by GNU Autoconf 2.67.  Invocation command line was
+generated by GNU Autoconf 2.68.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
   CONFIG_HEADERS  = $CONFIG_HEADERS
@@ -20870,7 +20890,7 @@
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
 Haskell base package config.status 1.0
-configured by $0, generated by GNU Autoconf 2.67,
+configured by $0, generated by GNU Autoconf 2.68,
   with options \\"\$ac_cs_config\\"
 
 Copyright (C) 2010 Free Software Foundation, Inc.
@@ -20994,7 +21014,7 @@
     "include/EventConfig.h") CONFIG_HEADERS="$CONFIG_HEADERS include/EventConfig.h" ;;
     "base.buildinfo") CONFIG_FILES="$CONFIG_FILES base.buildinfo" ;;
 
-  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5 ;;
+  *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;
   esac
 done
 
@@ -21016,9 +21036,10 @@
 # after its creation but before its name has been assigned to `$tmp'.
 $debug ||
 {
-  tmp=
+  tmp= ac_tmp=
   trap 'exit_status=$?
-  { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status
+  : "${ac_tmp:=$tmp}"
+  { test ! -d "$ac_tmp" || rm -fr "$ac_tmp"; } && exit $exit_status
 ' 0
   trap 'as_fn_exit 1' 1 2 13 15
 }
@@ -21026,12 +21047,13 @@
 
 {
   tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&
-  test -n "$tmp" && test -d "$tmp"
+  test -d "$tmp"
 }  ||
 {
   tmp=./conf$$-$RANDOM
   (umask 077 && mkdir "$tmp")
 } || as_fn_error $? "cannot create a temporary directory in ." "$LINENO" 5
+ac_tmp=$tmp
 
 # Set up the scripts for CONFIG_FILES section.
 # No need to generate them if there are no CONFIG_FILES.
@@ -21053,7 +21075,7 @@
   ac_cs_awk_cr=$ac_cr
 fi
 
-echo 'BEGIN {' >"$tmp/subs1.awk" &&
+echo 'BEGIN {' >"$ac_tmp/subs1.awk" &&
 _ACEOF
 
 
@@ -21081,7 +21103,7 @@
 rm -f conf$$subs.sh
 
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
-cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<\\_ACAWK &&
 _ACEOF
 sed -n '
 h
@@ -21129,7 +21151,7 @@
 rm -f conf$$subs.awk
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 _ACAWK
-cat >>"\$tmp/subs1.awk" <<_ACAWK &&
+cat >>"\$ac_tmp/subs1.awk" <<_ACAWK &&
   for (key in S) S_is_set[key] = 1
   FS = ""
 
@@ -21161,7 +21183,7 @@
   sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"
 else
   cat
-fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \
+fi < "$ac_tmp/subs1.awk" > "$ac_tmp/subs.awk" \
   || as_fn_error $? "could not setup config files machinery" "$LINENO" 5
 _ACEOF
 
@@ -21195,7 +21217,7 @@
 # No need to generate them if there are no CONFIG_HEADERS.
 # This happens for instance with `./config.status Makefile'.
 if test -n "$CONFIG_HEADERS"; then
-cat >"$tmp/defines.awk" <<\_ACAWK ||
+cat >"$ac_tmp/defines.awk" <<\_ACAWK ||
 BEGIN {
 _ACEOF
 
@@ -21207,8 +21229,8 @@
 # handling of long lines.
 ac_delim='%!_!# '
 for ac_last_try in false false :; do
-  ac_t=`sed -n "/$ac_delim/p" confdefs.h`
-  if test -z "$ac_t"; then
+  ac_tt=`sed -n "/$ac_delim/p" confdefs.h`
+  if test -z "$ac_tt"; then
     break
   elif $ac_last_try; then
     as_fn_error $? "could not make $CONFIG_HEADERS" "$LINENO" 5
@@ -21309,7 +21331,7 @@
   esac
   case $ac_mode$ac_tag in
   :[FHL]*:*);;
-  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5 ;;
+  :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;
   :[FH]-) ac_tag=-:-;;
   :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;
   esac
@@ -21328,7 +21350,7 @@
     for ac_f
     do
       case $ac_f in
-      -) ac_f="$tmp/stdin";;
+      -) ac_f="$ac_tmp/stdin";;
       *) # Look for the file first in the build tree, then in the source tree
 	 # (if the path is not absolute).  The absolute path cannot be DOS-style,
 	 # because $ac_f cannot contain `:'.
@@ -21337,7 +21359,7 @@
 	   [\\/$]*) false;;
 	   *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;
 	   esac ||
-	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5 ;;
+	   as_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;
       esac
       case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac
       as_fn_append ac_file_inputs " '$ac_f'"
@@ -21363,8 +21385,8 @@
     esac
 
     case $ac_tag in
-    *:-:* | *:-) cat >"$tmp/stdin" \
-      || as_fn_error $? "could not create $ac_file" "$LINENO" 5  ;;
+    *:-:* | *:-) cat >"$ac_tmp/stdin" \
+      || as_fn_error $? "could not create $ac_file" "$LINENO" 5 ;;
     esac
     ;;
   esac
@@ -21489,21 +21511,22 @@
 s&@abs_top_builddir@&$ac_abs_top_builddir&;t t
 $ac_datarootdir_hack
 "
-eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \
-  || as_fn_error $? "could not create $ac_file" "$LINENO" 5
+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$ac_tmp/subs.awk" \
+  >$ac_tmp/out || as_fn_error $? "could not create $ac_file" "$LINENO" 5
 
 test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&
-  { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&
-  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&
+  { ac_out=`sed -n '/\${datarootdir}/p' "$ac_tmp/out"`; test -n "$ac_out"; } &&
+  { ac_out=`sed -n '/^[	 ]*datarootdir[	 ]*:*=/p' \
+      "$ac_tmp/out"`; test -z "$ac_out"; } &&
   { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&5
 $as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'
 which seems to be undefined.  Please make sure it is defined" >&2;}
 
-  rm -f "$tmp/stdin"
+  rm -f "$ac_tmp/stdin"
   case $ac_file in
-  -) cat "$tmp/out" && rm -f "$tmp/out";;
-  *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;
+  -) cat "$ac_tmp/out" && rm -f "$ac_tmp/out";;
+  *) rm -f "$ac_file" && mv "$ac_tmp/out" "$ac_file";;
   esac \
   || as_fn_error $? "could not create $ac_file" "$LINENO" 5
  ;;
@@ -21514,20 +21537,20 @@
   if test x"$ac_file" != x-; then
     {
       $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"
-    } >"$tmp/config.h" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs"
+    } >"$ac_tmp/config.h" \
       || as_fn_error $? "could not create $ac_file" "$LINENO" 5
-    if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then
+    if diff "$ac_file" "$ac_tmp/config.h" >/dev/null 2>&1; then
       { $as_echo "$as_me:${as_lineno-$LINENO}: $ac_file is unchanged" >&5
 $as_echo "$as_me: $ac_file is unchanged" >&6;}
     else
       rm -f "$ac_file"
-      mv "$tmp/config.h" "$ac_file" \
+      mv "$ac_tmp/config.h" "$ac_file" \
 	|| as_fn_error $? "could not create $ac_file" "$LINENO" 5
     fi
   else
     $as_echo "/* $configure_input  */" \
-      && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \
+      && eval '$AWK -f "$ac_tmp/defines.awk"' "$ac_file_inputs" \
       || as_fn_error $? "could not create -" "$LINENO" 5
   fi
  ;;
diff --git a/include/HsBaseConfig.h b/include/HsBaseConfig.h
--- a/include/HsBaseConfig.h
+++ b/include/HsBaseConfig.h
@@ -461,7 +461,7 @@
 #define HTYPE_CHAR Int8
 
 /* Define to Haskell type for clock_t */
-#define HTYPE_CLOCK_T Int64
+#define HTYPE_CLOCK_T Int32
 
 /* Define to Haskell type for dev_t */
 #define HTYPE_DEV_T Word64
@@ -485,10 +485,10 @@
 #define HTYPE_INTMAX_T Int64
 
 /* Define to Haskell type for intptr_t */
-#define HTYPE_INTPTR_T Int64
+#define HTYPE_INTPTR_T Int32
 
 /* Define to Haskell type for long */
-#define HTYPE_LONG Int64
+#define HTYPE_LONG Int32
 
 /* Define to Haskell type for long long */
 #define HTYPE_LONG_LONG Int64
@@ -497,7 +497,7 @@
 #define HTYPE_MODE_T Word32
 
 /* Define to Haskell type for nlink_t */
-#define HTYPE_NLINK_T Word64
+#define HTYPE_NLINK_T Word32
 
 /* Define to Haskell type for off_t */
 #define HTYPE_OFF_T Int64
@@ -506,7 +506,7 @@
 #define HTYPE_PID_T Int32
 
 /* Define to Haskell type for ptrdiff_t */
-#define HTYPE_PTRDIFF_T Int64
+#define HTYPE_PTRDIFF_T Int32
 
 /* Define to Haskell type for rlim_t */
 #define HTYPE_RLIM_T Word64
@@ -521,22 +521,22 @@
 #define HTYPE_SIG_ATOMIC_T Int32
 
 /* Define to Haskell type for size_t */
-#define HTYPE_SIZE_T Word64
+#define HTYPE_SIZE_T Word32
 
 /* Define to Haskell type for speed_t */
 #define HTYPE_SPEED_T Word32
 
 /* Define to Haskell type for ssize_t */
-#define HTYPE_SSIZE_T Int64
+#define HTYPE_SSIZE_T Int32
 
 /* Define to Haskell type for suseconds_t */
-#define HTYPE_SUSECONDS_T Int64
+#define HTYPE_SUSECONDS_T Int32
 
 /* Define to Haskell type for tcflag_t */
 #define HTYPE_TCFLAG_T Word32
 
 /* Define to Haskell type for time_t */
-#define HTYPE_TIME_T Int64
+#define HTYPE_TIME_T Int32
 
 /* Define to Haskell type for uid_t */
 #define HTYPE_UID_T Word32
@@ -545,7 +545,7 @@
 #define HTYPE_UINTMAX_T Word64
 
 /* Define to Haskell type for uintptr_t */
-#define HTYPE_UINTPTR_T Word64
+#define HTYPE_UINTPTR_T Word32
 
 /* Define to Haskell type for unsigned char */
 #define HTYPE_UNSIGNED_CHAR Word8
@@ -554,7 +554,7 @@
 #define HTYPE_UNSIGNED_INT Word32
 
 /* Define to Haskell type for unsigned long */
-#define HTYPE_UNSIGNED_LONG Word64
+#define HTYPE_UNSIGNED_LONG Word32
 
 /* Define to Haskell type for unsigned long long */
 #define HTYPE_UNSIGNED_LONG_LONG Word64
@@ -593,7 +593,7 @@
 #define STDC_HEADERS 1
 
 /* Number of bits in a file offset, on hosts where this is settable. */
-/* #undef _FILE_OFFSET_BITS */
+#define _FILE_OFFSET_BITS 64
 
 /* Define for large files, on AIX-style hosts. */
 /* #undef _LARGE_FILES */
