{-# LANGUAGE NoImplicitPrelude #-}

module Stack.Types.WantedCompilerSetter
  ( WantedCompilerSetter (..)
  ) where

import           Stack.Prelude

-- | Type representing ways that a wanted compiler is set.

data WantedCompilerSetter
  = CompilerAtCommandLine
    -- ^ At the command line with --compiler option.

  | SnapshotAtCommandLine
    -- ^ At the command line with --snapshot (or --resolver) option.

  | YamlConfiguration (Maybe (Path Abs File))
    -- ^ Via a YAML configuration file.

  deriving (Int -> WantedCompilerSetter -> ShowS
[WantedCompilerSetter] -> ShowS
WantedCompilerSetter -> String
(Int -> WantedCompilerSetter -> ShowS)
-> (WantedCompilerSetter -> String)
-> ([WantedCompilerSetter] -> ShowS)
-> Show WantedCompilerSetter
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> WantedCompilerSetter -> ShowS
showsPrec :: Int -> WantedCompilerSetter -> ShowS
$cshow :: WantedCompilerSetter -> String
show :: WantedCompilerSetter -> String
$cshowList :: [WantedCompilerSetter] -> ShowS
showList :: [WantedCompilerSetter] -> ShowS
Show, Typeable)