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

instance Binary VerbosityLevel

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

instance Binary VerbosityFlag