{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE DeriveGeneric #-}
module Distribution.Verbosity.Internal
  ( VerbosityLevel(..)
  , VerbosityFlag(..)
  ) where

import Prelude ()
import Distribution.Compat.Prelude

data VerbosityLevel = Silent | Normal | Verbose | Deafening
    deriving ((forall x. VerbosityLevel -> Rep VerbosityLevel x)
-> (forall x. Rep VerbosityLevel x -> VerbosityLevel)
-> Generic VerbosityLevel
forall x. Rep VerbosityLevel x -> VerbosityLevel
forall x. VerbosityLevel -> Rep VerbosityLevel x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. VerbosityLevel -> Rep VerbosityLevel x
$cto :: forall x. Rep VerbosityLevel x -> VerbosityLevel
Generic, Int -> VerbosityLevel -> ShowS
[VerbosityLevel] -> ShowS
VerbosityLevel -> String
(Int -> VerbosityLevel -> ShowS)
-> (VerbosityLevel -> String)
-> ([VerbosityLevel] -> ShowS)
-> Show VerbosityLevel
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VerbosityLevel -> ShowS
showsPrec :: Int -> VerbosityLevel -> ShowS
$cshow :: VerbosityLevel -> String
show :: VerbosityLevel -> String
$cshowList :: [VerbosityLevel] -> ShowS
showList :: [VerbosityLevel] -> ShowS
Show, ReadPrec [VerbosityLevel]
ReadPrec VerbosityLevel
Int -> ReadS VerbosityLevel
ReadS [VerbosityLevel]
(Int -> ReadS VerbosityLevel)
-> ReadS [VerbosityLevel]
-> ReadPrec VerbosityLevel
-> ReadPrec [VerbosityLevel]
-> Read VerbosityLevel
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS VerbosityLevel
readsPrec :: Int -> ReadS VerbosityLevel
$creadList :: ReadS [VerbosityLevel]
readList :: ReadS [VerbosityLevel]
$creadPrec :: ReadPrec VerbosityLevel
readPrec :: ReadPrec VerbosityLevel
$creadListPrec :: ReadPrec [VerbosityLevel]
readListPrec :: ReadPrec [VerbosityLevel]
Read, VerbosityLevel -> VerbosityLevel -> Bool
(VerbosityLevel -> VerbosityLevel -> Bool)
-> (VerbosityLevel -> VerbosityLevel -> Bool) -> Eq VerbosityLevel
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VerbosityLevel -> VerbosityLevel -> Bool
== :: VerbosityLevel -> VerbosityLevel -> Bool
$c/= :: VerbosityLevel -> VerbosityLevel -> Bool
/= :: VerbosityLevel -> VerbosityLevel -> Bool
Eq, Eq VerbosityLevel
Eq VerbosityLevel
-> (VerbosityLevel -> VerbosityLevel -> Ordering)
-> (VerbosityLevel -> VerbosityLevel -> Bool)
-> (VerbosityLevel -> VerbosityLevel -> Bool)
-> (VerbosityLevel -> VerbosityLevel -> Bool)
-> (VerbosityLevel -> VerbosityLevel -> Bool)
-> (VerbosityLevel -> VerbosityLevel -> VerbosityLevel)
-> (VerbosityLevel -> VerbosityLevel -> VerbosityLevel)
-> Ord VerbosityLevel
VerbosityLevel -> VerbosityLevel -> Bool
VerbosityLevel -> VerbosityLevel -> Ordering
VerbosityLevel -> VerbosityLevel -> VerbosityLevel
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: VerbosityLevel -> VerbosityLevel -> Ordering
compare :: VerbosityLevel -> VerbosityLevel -> Ordering
$c< :: VerbosityLevel -> VerbosityLevel -> Bool
< :: VerbosityLevel -> VerbosityLevel -> Bool
$c<= :: VerbosityLevel -> VerbosityLevel -> Bool
<= :: VerbosityLevel -> VerbosityLevel -> Bool
$c> :: VerbosityLevel -> VerbosityLevel -> Bool
> :: VerbosityLevel -> VerbosityLevel -> Bool
$c>= :: VerbosityLevel -> VerbosityLevel -> Bool
>= :: VerbosityLevel -> VerbosityLevel -> Bool
$cmax :: VerbosityLevel -> VerbosityLevel -> VerbosityLevel
max :: VerbosityLevel -> VerbosityLevel -> VerbosityLevel
$cmin :: VerbosityLevel -> VerbosityLevel -> VerbosityLevel
min :: VerbosityLevel -> VerbosityLevel -> VerbosityLevel
Ord, Int -> VerbosityLevel
VerbosityLevel -> Int
VerbosityLevel -> [VerbosityLevel]
VerbosityLevel -> VerbosityLevel
VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
VerbosityLevel
-> VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
(VerbosityLevel -> VerbosityLevel)
-> (VerbosityLevel -> VerbosityLevel)
-> (Int -> VerbosityLevel)
-> (VerbosityLevel -> Int)
-> (VerbosityLevel -> [VerbosityLevel])
-> (VerbosityLevel -> VerbosityLevel -> [VerbosityLevel])
-> (VerbosityLevel -> VerbosityLevel -> [VerbosityLevel])
-> (VerbosityLevel
    -> VerbosityLevel -> VerbosityLevel -> [VerbosityLevel])
-> Enum VerbosityLevel
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 :: VerbosityLevel -> VerbosityLevel
succ :: VerbosityLevel -> VerbosityLevel
$cpred :: VerbosityLevel -> VerbosityLevel
pred :: VerbosityLevel -> VerbosityLevel
$ctoEnum :: Int -> VerbosityLevel
toEnum :: Int -> VerbosityLevel
$cfromEnum :: VerbosityLevel -> Int
fromEnum :: VerbosityLevel -> Int
$cenumFrom :: VerbosityLevel -> [VerbosityLevel]
enumFrom :: VerbosityLevel -> [VerbosityLevel]
$cenumFromThen :: VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
enumFromThen :: VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
$cenumFromTo :: VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
enumFromTo :: VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
$cenumFromThenTo :: VerbosityLevel
-> VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
enumFromThenTo :: VerbosityLevel
-> VerbosityLevel -> VerbosityLevel -> [VerbosityLevel]
Enum, VerbosityLevel
VerbosityLevel -> VerbosityLevel -> Bounded VerbosityLevel
forall a. a -> a -> Bounded a
$cminBound :: VerbosityLevel
minBound :: VerbosityLevel
$cmaxBound :: VerbosityLevel
maxBound :: VerbosityLevel
Bounded, Typeable)

instance Binary VerbosityLevel
instance Structured VerbosityLevel

data VerbosityFlag
    = VCallStack
    | VCallSite
    | VNoWrap
    | VMarkOutput
    | VTimestamp
    | VStderr -- ^ @since 3.4.0.0
    | VNoWarn
    deriving ((forall x. VerbosityFlag -> Rep VerbosityFlag x)
-> (forall x. Rep VerbosityFlag x -> VerbosityFlag)
-> Generic VerbosityFlag
forall x. Rep VerbosityFlag x -> VerbosityFlag
forall x. VerbosityFlag -> Rep VerbosityFlag x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. VerbosityFlag -> Rep VerbosityFlag x
$cto :: forall x. Rep VerbosityFlag x -> VerbosityFlag
Generic, Int -> VerbosityFlag -> ShowS
[VerbosityFlag] -> ShowS
VerbosityFlag -> String
(Int -> VerbosityFlag -> ShowS)
-> (VerbosityFlag -> String)
-> ([VerbosityFlag] -> ShowS)
-> Show VerbosityFlag
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> VerbosityFlag -> ShowS
showsPrec :: Int -> VerbosityFlag -> ShowS
$cshow :: VerbosityFlag -> String
show :: VerbosityFlag -> String
$cshowList :: [VerbosityFlag] -> ShowS
showList :: [VerbosityFlag] -> ShowS
Show, ReadPrec [VerbosityFlag]
ReadPrec VerbosityFlag
Int -> ReadS VerbosityFlag
ReadS [VerbosityFlag]
(Int -> ReadS VerbosityFlag)
-> ReadS [VerbosityFlag]
-> ReadPrec VerbosityFlag
-> ReadPrec [VerbosityFlag]
-> Read VerbosityFlag
forall a.
(Int -> ReadS a)
-> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a
$creadsPrec :: Int -> ReadS VerbosityFlag
readsPrec :: Int -> ReadS VerbosityFlag
$creadList :: ReadS [VerbosityFlag]
readList :: ReadS [VerbosityFlag]
$creadPrec :: ReadPrec VerbosityFlag
readPrec :: ReadPrec VerbosityFlag
$creadListPrec :: ReadPrec [VerbosityFlag]
readListPrec :: ReadPrec [VerbosityFlag]
Read, VerbosityFlag -> VerbosityFlag -> Bool
(VerbosityFlag -> VerbosityFlag -> Bool)
-> (VerbosityFlag -> VerbosityFlag -> Bool) -> Eq VerbosityFlag
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: VerbosityFlag -> VerbosityFlag -> Bool
== :: VerbosityFlag -> VerbosityFlag -> Bool
$c/= :: VerbosityFlag -> VerbosityFlag -> Bool
/= :: VerbosityFlag -> VerbosityFlag -> Bool
Eq, Eq VerbosityFlag
Eq VerbosityFlag
-> (VerbosityFlag -> VerbosityFlag -> Ordering)
-> (VerbosityFlag -> VerbosityFlag -> Bool)
-> (VerbosityFlag -> VerbosityFlag -> Bool)
-> (VerbosityFlag -> VerbosityFlag -> Bool)
-> (VerbosityFlag -> VerbosityFlag -> Bool)
-> (VerbosityFlag -> VerbosityFlag -> VerbosityFlag)
-> (VerbosityFlag -> VerbosityFlag -> VerbosityFlag)
-> Ord VerbosityFlag
VerbosityFlag -> VerbosityFlag -> Bool
VerbosityFlag -> VerbosityFlag -> Ordering
VerbosityFlag -> VerbosityFlag -> VerbosityFlag
forall a.
Eq a
-> (a -> a -> Ordering)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> Bool)
-> (a -> a -> a)
-> (a -> a -> a)
-> Ord a
$ccompare :: VerbosityFlag -> VerbosityFlag -> Ordering
compare :: VerbosityFlag -> VerbosityFlag -> Ordering
$c< :: VerbosityFlag -> VerbosityFlag -> Bool
< :: VerbosityFlag -> VerbosityFlag -> Bool
$c<= :: VerbosityFlag -> VerbosityFlag -> Bool
<= :: VerbosityFlag -> VerbosityFlag -> Bool
$c> :: VerbosityFlag -> VerbosityFlag -> Bool
> :: VerbosityFlag -> VerbosityFlag -> Bool
$c>= :: VerbosityFlag -> VerbosityFlag -> Bool
>= :: VerbosityFlag -> VerbosityFlag -> Bool
$cmax :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag
max :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag
$cmin :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag
min :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag
Ord, Int -> VerbosityFlag
VerbosityFlag -> Int
VerbosityFlag -> [VerbosityFlag]
VerbosityFlag -> VerbosityFlag
VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
VerbosityFlag -> VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
(VerbosityFlag -> VerbosityFlag)
-> (VerbosityFlag -> VerbosityFlag)
-> (Int -> VerbosityFlag)
-> (VerbosityFlag -> Int)
-> (VerbosityFlag -> [VerbosityFlag])
-> (VerbosityFlag -> VerbosityFlag -> [VerbosityFlag])
-> (VerbosityFlag -> VerbosityFlag -> [VerbosityFlag])
-> (VerbosityFlag
    -> VerbosityFlag -> VerbosityFlag -> [VerbosityFlag])
-> Enum VerbosityFlag
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 :: VerbosityFlag -> VerbosityFlag
succ :: VerbosityFlag -> VerbosityFlag
$cpred :: VerbosityFlag -> VerbosityFlag
pred :: VerbosityFlag -> VerbosityFlag
$ctoEnum :: Int -> VerbosityFlag
toEnum :: Int -> VerbosityFlag
$cfromEnum :: VerbosityFlag -> Int
fromEnum :: VerbosityFlag -> Int
$cenumFrom :: VerbosityFlag -> [VerbosityFlag]
enumFrom :: VerbosityFlag -> [VerbosityFlag]
$cenumFromThen :: VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
enumFromThen :: VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
$cenumFromTo :: VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
enumFromTo :: VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
$cenumFromThenTo :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
enumFromThenTo :: VerbosityFlag -> VerbosityFlag -> VerbosityFlag -> [VerbosityFlag]
Enum, VerbosityFlag
VerbosityFlag -> VerbosityFlag -> Bounded VerbosityFlag
forall a. a -> a -> Bounded a
$cminBound :: VerbosityFlag
minBound :: VerbosityFlag
$cmaxBound :: VerbosityFlag
maxBound :: VerbosityFlag
Bounded, Typeable)

instance Binary VerbosityFlag
instance Structured VerbosityFlag