{-# LANGUAGE DeriveGeneric #-}
module Distribution.Client.Types.WriteGhcEnvironmentFilesPolicy (
    WriteGhcEnvironmentFilesPolicy (..),
) where

import Prelude ()
import Distribution.Client.Compat.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
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
/= :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
$c/= :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
== :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
$c== :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy -> Bool
Eq, Int -> WriteGhcEnvironmentFilesPolicy
WriteGhcEnvironmentFilesPolicy -> Int
WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [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
enumFromThenTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
$cenumFromThenTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFromTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
$cenumFromTo :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFromThen :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
$cenumFromThen :: WriteGhcEnvironmentFilesPolicy
-> WriteGhcEnvironmentFilesPolicy
-> [WriteGhcEnvironmentFilesPolicy]
enumFrom :: WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
$cenumFrom :: WriteGhcEnvironmentFilesPolicy -> [WriteGhcEnvironmentFilesPolicy]
fromEnum :: WriteGhcEnvironmentFilesPolicy -> Int
$cfromEnum :: WriteGhcEnvironmentFilesPolicy -> Int
toEnum :: Int -> WriteGhcEnvironmentFilesPolicy
$ctoEnum :: Int -> WriteGhcEnvironmentFilesPolicy
pred :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
$cpred :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
succ :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
$csucc :: WriteGhcEnvironmentFilesPolicy -> WriteGhcEnvironmentFilesPolicy
Enum, WriteGhcEnvironmentFilesPolicy
forall a. a -> a -> Bounded a
maxBound :: WriteGhcEnvironmentFilesPolicy
$cmaxBound :: WriteGhcEnvironmentFilesPolicy
minBound :: WriteGhcEnvironmentFilesPolicy
$cminBound :: WriteGhcEnvironmentFilesPolicy
Bounded, 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
$cto :: forall x.
Rep WriteGhcEnvironmentFilesPolicy x
-> WriteGhcEnvironmentFilesPolicy
$cfrom :: forall x.
WriteGhcEnvironmentFilesPolicy
-> Rep WriteGhcEnvironmentFilesPolicy x
Generic, Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
[WriteGhcEnvironmentFilesPolicy] -> ShowS
WriteGhcEnvironmentFilesPolicy -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
showList :: [WriteGhcEnvironmentFilesPolicy] -> ShowS
$cshowList :: [WriteGhcEnvironmentFilesPolicy] -> ShowS
show :: WriteGhcEnvironmentFilesPolicy -> String
$cshow :: WriteGhcEnvironmentFilesPolicy -> String
showsPrec :: Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
$cshowsPrec :: Int -> WriteGhcEnvironmentFilesPolicy -> ShowS
Show)

instance Binary WriteGhcEnvironmentFilesPolicy
instance Structured WriteGhcEnvironmentFilesPolicy