{-# LANGUAGE CPP #-}
module Development.IDE.GHC.Compat.Util (
    
    MonadCatch,
    GhcException,
    handleGhcException,
    catch,
    try,
    
    Bag,
    bagToList,
    listToBag,
    unionBags,
    isEmptyBag,
    
    LBooleanFormula,
    BooleanFormula(..),
    
    OverridingBool(..),
    
    MaybeErr(..),
    orElse,
    
    Pair(..),
    
    EnumSet,
    toList,
    
    FastString,
    
    LexicalFastString(..),
    uniq,
    unpackFS,
    mkFastString,
    fsLit,
    pprHsString,
    
    Fingerprint(..),
    getFileHash,
    fingerprintData,
    fingerprintString,
    fingerprintFingerprints,
    
    Uniquable,
    nonDetCmpUnique,
    getUnique,
    Unique,
    mkUnique,
    newTagUnique,
    
    emptyUDFM,
    plusUDFM,
    plusUDFM_C,
    
    StringBuffer(..),
    hGetStringBuffer,
    stringToStringBuffer,
    nextChar,
    atEnd,
    ) where
import           Control.Exception.Safe  (MonadCatch, catch, try)
import           GHC.Data.Bag
import           GHC.Data.BooleanFormula
import           GHC.Data.EnumSet
import           GHC.Data.FastString
import           GHC.Data.Maybe
import           GHC.Data.Pair
import           GHC.Data.StringBuffer
import           GHC.Types.Unique
import           GHC.Types.Unique.DFM
import           GHC.Utils.Fingerprint
import           GHC.Utils.Outputable    (pprHsString)
import           GHC.Utils.Panic         hiding (try)
#if !MIN_VERSION_ghc(9,3,0)
import           GHC.Utils.Misc
#endif
#if MIN_VERSION_ghc(9,3,0)
import           GHC.Data.Bool
#endif