{-# LANGUAGE DeriveGeneric #-}

module Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy
  ( WriteGhcEnvironmentFilesPolicy (..)
  ) where

import Distribution.Client.Compat.Prelude
import Prelude ()

-- | Whether 'v2-build' should write a .ghc.environment file after
-- success. Possible values: 'always', 'never' (the default), 'ghc8.4.4+'
-- (8.4.4 is the earliest version that supports
-- '-package-env -').
data WriteGhcEnvironmentFilesPolicy
  = AlwaysWriteGhcEnvironmentFiles
  | NeverWriteGhcEnvironmentFiles
  | WriteGhcEnvironmentFilesOnlyForGhc844AndNewer
  deriving (WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
(WriteGhcEnvironmentFilesPolicy
 -> WriteGhcEnvironmentFilesPolicy -> Bool)
-> (WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy -> Bool)
-> Eq WriteGhcEnvironmentFilesPolicy
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
== :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
$c/= :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
/= :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
Eq, Int -> WriteGhcEnvironmentFilesPolicy
WriteGhcEnvironmentFilesPolicy -> Int
WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
(WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy)
-> (WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy)
-> (Int -> WriteGhcEnvironmentFilesPolicy)
-> (WriteGhcEnvironmentFilesPolicy -> Int)
-> (WriteGhcEnvironmentFilesPolicy
    -> [WriteGhcEnvironmentFilesPolicy])
-> (WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy
    -> [WriteGhcEnvironmentFilesPolicy])
-> (WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy
    -> [WriteGhcEnvironmentFilesPolicy])
-> (WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy
    -> WriteGhcEnvironmentFilesPolicy
    -> [WriteGhcEnvironmentFilesPolicy])
-> Enum WriteGhcEnvironmentFilesPolicy
forall a.
(a -> a)
-> (a -> a)
-> (Int -> a)
-> (a -> Int)
-> (a -> [a])
-> (a -> a -> [a])
-> (a -> a -> [a])
-> (a -> a -> a -> [a])
-> Enum a
$csucc :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
succ :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
$cpred :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
pred :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
$ctoEnum :: Int -> WriteGhcEnvironmentFilesPolicy
toEnum :: Int -> WriteGhcEnvironmentFilesPolicy
$cfromEnum :: WriteGhcEnvironmentFilesPolicy -> Int
fromEnum :: WriteGhcEnvironmentFilesPolicy -> Int
$cenumFrom :: WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
enumFrom :: WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
$cenumFromThen :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFromThen :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
$cenumFromTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFromTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
$cenumFromThenTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFromThenTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
Enum, WriteGhcEnvironmentFilesPolicy
WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> Bounded WriteGhcEnvironmentFilesPolicy
forall a. a -> a -> Bounded a
$cminBound :: WriteGhcEnvironmentFilesPolicy
minBound :: WriteGhcEnvironmentFilesPolicy
$cmaxBound :: WriteGhcEnvironmentFilesPolicy
maxBound :: WriteGhcEnvironmentFilesPolicy
Bounded, (forall x.
 WriteGhcEnvironmentFilesPolicy
 -> Rep WriteGhcEnvironmentFilesPolicy x)
-> (forall x.
    Rep WriteGhcEnvironmentFilesPolicy x
    -> WriteGhcEnvironmentFilesPolicy)
-> Generic WriteGhcEnvironmentFilesPolicy
forall x.
Rep WriteGhcEnvironmentFilesPolicy x
-> WriteGhcEnvironmentFilesPolicy
forall x.
WriteGhcEnvironmentFilesPolicy
-> Rep WriteGhcEnvironmentFilesPolicy x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x.
WriteGhcEnvironmentFilesPolicy
-> Rep WriteGhcEnvironmentFilesPolicy x
from :: forall x.
WriteGhcEnvironmentFilesPolicy
-> Rep WriteGhcEnvironmentFilesPolicy x
$cto :: forall x.
Rep WriteGhcEnvironmentFilesPolicy x
-> WriteGhcEnvironmentFilesPolicy
to :: forall x.
Rep WriteGhcEnvironmentFilesPolicy x
-> WriteGhcEnvironmentFilesPolicy
Generic, Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
[WriteGhcEnvironmentFilesPolicy] -> ShowS
WriteGhcEnvironmentFilesPolicy -> String
(Int -> WriteGhcEnvironmentFilesPolicy -> ShowS)
-> (WriteGhcEnvironmentFilesPolicy -> String)
-> ([WriteGhcEnvironmentFilesPolicy] -> ShowS)
-> Show WriteGhcEnvironmentFilesPolicy
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
showsPrec :: Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
$cshow :: WriteGhcEnvironmentFilesPolicy -> String
show :: WriteGhcEnvironmentFilesPolicy -> String
$cshowList :: [WriteGhcEnvironmentFilesPolicy] -> ShowS
showList :: [WriteGhcEnvironmentFilesPolicy] -> ShowS
Show)

instance Binary WriteGhcEnvironmentFilesPolicy
instance Structured WriteGhcEnvironmentFilesPolicy