{-# LANGUAGE CPP #-}
{-# OPTIONS_GHC -fno-warn-orphans #-}
module GHC.BasicTypes.Extra where
import GHC.Types.Basic
import Control.DeepSeq
import Data.Binary
import GHC.Generics
import GHC.Types.SourceText
#if MIN_VERSION_ghc(9,8,0)
import Data.ByteString
import GHC.Data.FastString
import Unsafe.Coerce
#endif
deriving instance Generic InlineSpec
instance NFData InlineSpec
instance Binary InlineSpec
#if MIN_VERSION_ghc(9,8,0)
deriving instance Generic FastString
instance Binary FastString
instance Binary FastZString where
put = put . fastZStringToByteString
get = unsafeCoerce (get :: Get ByteString)
#endif
deriving instance Generic SourceText
#if !MIN_VERSION_ghc(9,8,0)
instance NFData SourceText
#endif
instance Binary SourceText
isNoInline :: InlineSpec -> Bool
isNoInline :: InlineSpec -> Bool
isNoInline NoInline{} = Bool
True
isNoInline Opaque{} = Bool
True
isNoInline InlineSpec
_ = Bool
False
isOpaque :: InlineSpec -> Bool
isOpaque :: InlineSpec -> Bool
isOpaque Opaque{} = Bool
True
isOpaque InlineSpec
_ = Bool
False