module Base
( module X
, ($!)
) where
#if defined(__GLASGOW_HASKELL__) && ( __GLASGOW_HASKELL__ >= 600 )
import GHC.Base as X (String, asTypeOf, maxInt, minInt, ord, seq,
(++))
import GHC.Enum as X (Bounded (..), Enum (..), boundedEnumFrom,
boundedEnumFromThen)
import GHC.Err as X (error, undefined)
import GHC.Exts as X (Constraint, FunPtr, Ptr)
import GHC.Float as X (Double (..), Float (..), Floating (..),
showFloat, showSignedFloat)
import GHC.Num as X (Integer, Num (..), subtract)
import GHC.Real as X hiding ((%))
import GHC.Show as X (Show (..))
import System.IO as X (print, putStr, putStrLn)
import GHC.Types as X (Bool, Char, IO, Int, Ordering, Word)
#if ( __GLASGOW_HASKELL__ >= 710 )
import GHC.Types as X (Coercible)
#endif
#if ( __GLASGOW_HASKELL__ >= 710 )
import GHC.StaticPtr as X (StaticPtr)
#endif
#if ( __GLASGOW_HASKELL__ >= 800 )
import GHC.OverloadedLabels as X (IsLabel (..))
import GHC.ExecutionStack as X (Location (..), SrcLoc (..), getStackTrace,
showStackTrace)
import GHC.Stack as X (CallStack, HasCallStack, callStack,
currentCallStack, getCallStack,
prettyCallStack, prettySrcLoc,
withFrozenCallStack)
#if ( __GLASGOW_HASKELL__ >= 710 )
import GHC.TypeLits as X (CmpNat, KnownNat, KnownSymbol, Nat,
SomeNat (..), SomeSymbol (..), Symbol, natVal,
someNatVal, someSymbolVal, symbolVal)
#endif
#endif
infixr 0 $!
($!) :: (a -> b) -> a -> b
f $! x = let !vx = x in f vx
#endif