{-# LANGUAGE TemplateHaskell #-}
module GHC.Check.Util where
import Data.Maybe
import Data.Version
import GHC.Exts (IsList (fromList), toList)
import qualified GHC.Paths
import Language.Haskell.TH
import Language.Haskell.TH.Syntax as TH
import System.Environment (lookupEnv)
guessLibdir :: IO FilePath
guessLibdir = fromMaybe GHC.Paths.libdir <$> lookupEnv "NIX_GHC_LIBDIR"
liftVersion :: Version -> TExpQ Version
liftVersion ver = do
verLifted <- TH.lift (toList ver)
[|| fromList $$(pure $ TExp verLifted) ||]