{-# LANGUAGE TemplateHaskell #-}
{-# OPTIONS_GHC -Wno-missing-signatures #-}
module Types
( Compiler(..)
, compilerVersion
, Config(..)
, configInstallPath
, configCurrentCompiler
, compilerString
) where
import qualified Lens.Family.TH as Lens
data Compiler = Compiler
{ _compilerVersion :: (Int, Int, Int)
} deriving (Eq, Show)
data Config = Config
{ _configInstallPath :: FilePath
, _configCurrentCompiler :: Maybe Compiler
} deriving (Eq, Show)
Lens.makeLenses ''Compiler
Lens.makeLenses ''Config
compilerString :: Compiler -> String
compilerString (Compiler (x, y, z)) =
"ghc-" ++ show x ++ "." ++ show y ++ "." ++ show z