{-# LANGUAGE CPP #-}
{-# LANGUAGE Trustworthy #-}
module Relude.Base
(
module Data.Char
, module Data.Eq
, module Data.Ord
, module System.IO
, module Data.Coerce
, module Data.Kind
, module Data.Proxy
, module Data.Typeable
, module Data.Void
, module GHC.Base
, module GHC.Enum
, module GHC.Generics
, module GHC.Show
#if MIN_VERSION_base(4,10,0)
, module GHC.TypeNats
#else
, module GHC.TypeLits
#endif
, module GHC.OverloadedLabels
, module GHC.ExecutionStack
, module GHC.Stack
) where
import Data.Char (Char, chr)
import System.IO (FilePath, Handle, IO, IOMode (..), stderr, stdin, stdout, withFile)
import Data.Eq (Eq (..))
import Data.Ord (Down (..), Ord (..), Ordering (..), comparing)
import Data.Coerce (Coercible, coerce)
import Data.Kind (Constraint, Type)
import Data.Proxy (Proxy (..))
import Data.Typeable (Typeable)
import Data.Void (Void, absurd, vacuous)
import GHC.Base (asTypeOf, ord, seq, ($!))
import GHC.Enum (Bounded (..), Enum (..), boundedEnumFrom, boundedEnumFromThen)
import GHC.Generics (Generic)
import GHC.Show (Show)
#if MIN_VERSION_base(4,10,0)
import GHC.TypeNats (CmpNat, KnownNat, Nat, SomeNat (..), natVal, someNatVal)
#else
import GHC.TypeLits (CmpNat, KnownNat, Nat, SomeNat (..), natVal, someNatVal)
#endif
import GHC.ExecutionStack (getStackTrace, showStackTrace)
import GHC.OverloadedLabels (IsLabel (..))
import GHC.Stack (CallStack, HasCallStack, callStack, currentCallStack, getCallStack,
prettyCallStack, prettySrcLoc, withFrozenCallStack)