{-# LANGUAGE DeriveGeneric #-}
{-# LANGUAGE CPP #-}
module GHC.TypeLits.Presburger.Flags (GHCVer(..), ghcVer) where
import GHC.Generics (Generic)

data GHCVer 
  = GHC806 | GHC808 | GHC810 
  | GHC900 | GHC902 | GHC904 
  | GHC906 | GHC908 | GHC910
  deriving (Int -> GHCVer -> ShowS
[GHCVer] -> ShowS
GHCVer -> String
(Int -> GHCVer -> ShowS)
-> (GHCVer -> String) -> ([GHCVer] -> ShowS) -> Show GHCVer
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: Int -> GHCVer -> ShowS
showsPrec :: Int -> GHCVer -> ShowS
$cshow :: GHCVer -> String
show :: GHCVer -> String
$cshowList :: [GHCVer] -> ShowS
showList :: [GHCVer] -> ShowS
Show, GHCVer -> GHCVer -> Bool
(GHCVer -> GHCVer -> Bool)
-> (GHCVer -> GHCVer -> Bool) -> Eq GHCVer
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: GHCVer -> GHCVer -> Bool
== :: GHCVer -> GHCVer -> Bool
$c/= :: GHCVer -> GHCVer -> Bool
/= :: GHCVer -> GHCVer -> Bool
Eq, Eq GHCVer
Eq GHCVer =>
(GHCVer -> GHCVer -> Ordering)
-> (GHCVer -> GHCVer -> Bool)
-> (GHCVer -> GHCVer -> Bool)
-> (GHCVer -> GHCVer -> Bool)
-> (GHCVer -> GHCVer -> Bool)
-> (GHCVer -> GHCVer -> GHCVer)
-> (GHCVer -> GHCVer -> GHCVer)
-> Ord GHCVer
GHCVer -> GHCVer -> Bool
GHCVer -> GHCVer -> Ordering
GHCVer -> GHCVer -> GHCVer
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 :: GHCVer -> GHCVer -> Ordering
compare :: GHCVer -> GHCVer -> Ordering
$c< :: GHCVer -> GHCVer -> Bool
< :: GHCVer -> GHCVer -> Bool
$c<= :: GHCVer -> GHCVer -> Bool
<= :: GHCVer -> GHCVer -> Bool
$c> :: GHCVer -> GHCVer -> Bool
> :: GHCVer -> GHCVer -> Bool
$c>= :: GHCVer -> GHCVer -> Bool
>= :: GHCVer -> GHCVer -> Bool
$cmax :: GHCVer -> GHCVer -> GHCVer
max :: GHCVer -> GHCVer -> GHCVer
$cmin :: GHCVer -> GHCVer -> GHCVer
min :: GHCVer -> GHCVer -> GHCVer
Ord, (forall x. GHCVer -> Rep GHCVer x)
-> (forall x. Rep GHCVer x -> GHCVer) -> Generic GHCVer
forall x. Rep GHCVer x -> GHCVer
forall x. GHCVer -> Rep GHCVer x
forall a.
(forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a
$cfrom :: forall x. GHCVer -> Rep GHCVer x
from :: forall x. GHCVer -> Rep GHCVer x
$cto :: forall x. Rep GHCVer x -> GHCVer
to :: forall x. Rep GHCVer x -> GHCVer
Generic)

ghcVer :: GHCVer
#if MIN_VERSION_ghc(9,10,1)
ghcVer = GHC910
#elif MIN_VERSION_ghc(9,8,1)
ghcVer = GHC908
#elif MIN_VERSION_ghc(9,6,1)
ghcVer :: GHCVer
ghcVer = GHCVer
GHC906
#elif MIN_VERSION_ghc(9,4,1)
ghcVer = GHC904
#elif MIN_VERSION_ghc(9,2,1)
ghcVer = GHC902
#elif MIN_VERSION_ghc(9,0,1)
ghcVer = GHC900
#elif MIN_VERSION_ghc(8,10,1)
ghcVer = GHC810
#elif MIN_VERSION_ghc(8,8,1)
ghcVer = GHC808
#else
ghcVer = GHC806
#endif