{-# LANGUAGE DeriveGeneric #-} module Jordan.Generic.Options where import GHC.Generics (Generic) data SumTypeEncoding = TagVal | TagInField deriving (Int -> SumTypeEncoding -> ShowS [SumTypeEncoding] -> ShowS SumTypeEncoding -> String (Int -> SumTypeEncoding -> ShowS) -> (SumTypeEncoding -> String) -> ([SumTypeEncoding] -> ShowS) -> Show SumTypeEncoding forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a showList :: [SumTypeEncoding] -> ShowS $cshowList :: [SumTypeEncoding] -> ShowS show :: SumTypeEncoding -> String $cshow :: SumTypeEncoding -> String showsPrec :: Int -> SumTypeEncoding -> ShowS $cshowsPrec :: Int -> SumTypeEncoding -> ShowS Show, ReadPrec [SumTypeEncoding] ReadPrec SumTypeEncoding Int -> ReadS SumTypeEncoding ReadS [SumTypeEncoding] (Int -> ReadS SumTypeEncoding) -> ReadS [SumTypeEncoding] -> ReadPrec SumTypeEncoding -> ReadPrec [SumTypeEncoding] -> Read SumTypeEncoding forall a. (Int -> ReadS a) -> ReadS [a] -> ReadPrec a -> ReadPrec [a] -> Read a readListPrec :: ReadPrec [SumTypeEncoding] $creadListPrec :: ReadPrec [SumTypeEncoding] readPrec :: ReadPrec SumTypeEncoding $creadPrec :: ReadPrec SumTypeEncoding readList :: ReadS [SumTypeEncoding] $creadList :: ReadS [SumTypeEncoding] readsPrec :: Int -> ReadS SumTypeEncoding $creadsPrec :: Int -> ReadS SumTypeEncoding Read, SumTypeEncoding -> SumTypeEncoding -> Bool (SumTypeEncoding -> SumTypeEncoding -> Bool) -> (SumTypeEncoding -> SumTypeEncoding -> Bool) -> Eq SumTypeEncoding forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a /= :: SumTypeEncoding -> SumTypeEncoding -> Bool $c/= :: SumTypeEncoding -> SumTypeEncoding -> Bool == :: SumTypeEncoding -> SumTypeEncoding -> Bool $c== :: SumTypeEncoding -> SumTypeEncoding -> Bool Eq, Eq SumTypeEncoding Eq SumTypeEncoding -> (SumTypeEncoding -> SumTypeEncoding -> Ordering) -> (SumTypeEncoding -> SumTypeEncoding -> Bool) -> (SumTypeEncoding -> SumTypeEncoding -> Bool) -> (SumTypeEncoding -> SumTypeEncoding -> Bool) -> (SumTypeEncoding -> SumTypeEncoding -> Bool) -> (SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding) -> (SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding) -> Ord SumTypeEncoding SumTypeEncoding -> SumTypeEncoding -> Bool SumTypeEncoding -> SumTypeEncoding -> Ordering SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding 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 :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding $cmin :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding max :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding $cmax :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding >= :: SumTypeEncoding -> SumTypeEncoding -> Bool $c>= :: SumTypeEncoding -> SumTypeEncoding -> Bool > :: SumTypeEncoding -> SumTypeEncoding -> Bool $c> :: SumTypeEncoding -> SumTypeEncoding -> Bool <= :: SumTypeEncoding -> SumTypeEncoding -> Bool $c<= :: SumTypeEncoding -> SumTypeEncoding -> Bool < :: SumTypeEncoding -> SumTypeEncoding -> Bool $c< :: SumTypeEncoding -> SumTypeEncoding -> Bool compare :: SumTypeEncoding -> SumTypeEncoding -> Ordering $ccompare :: SumTypeEncoding -> SumTypeEncoding -> Ordering $cp1Ord :: Eq SumTypeEncoding Ord, SumTypeEncoding SumTypeEncoding -> SumTypeEncoding -> Bounded SumTypeEncoding forall a. a -> a -> Bounded a maxBound :: SumTypeEncoding $cmaxBound :: SumTypeEncoding minBound :: SumTypeEncoding $cminBound :: SumTypeEncoding Bounded, Int -> SumTypeEncoding SumTypeEncoding -> Int SumTypeEncoding -> [SumTypeEncoding] SumTypeEncoding -> SumTypeEncoding SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] (SumTypeEncoding -> SumTypeEncoding) -> (SumTypeEncoding -> SumTypeEncoding) -> (Int -> SumTypeEncoding) -> (SumTypeEncoding -> Int) -> (SumTypeEncoding -> [SumTypeEncoding]) -> (SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding]) -> (SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding]) -> (SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding]) -> Enum SumTypeEncoding 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 :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] $cenumFromThenTo :: SumTypeEncoding -> SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] enumFromTo :: SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] $cenumFromTo :: SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] enumFromThen :: SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] $cenumFromThen :: SumTypeEncoding -> SumTypeEncoding -> [SumTypeEncoding] enumFrom :: SumTypeEncoding -> [SumTypeEncoding] $cenumFrom :: SumTypeEncoding -> [SumTypeEncoding] fromEnum :: SumTypeEncoding -> Int $cfromEnum :: SumTypeEncoding -> Int toEnum :: Int -> SumTypeEncoding $ctoEnum :: Int -> SumTypeEncoding pred :: SumTypeEncoding -> SumTypeEncoding $cpred :: SumTypeEncoding -> SumTypeEncoding succ :: SumTypeEncoding -> SumTypeEncoding $csucc :: SumTypeEncoding -> SumTypeEncoding Enum, (forall x. SumTypeEncoding -> Rep SumTypeEncoding x) -> (forall x. Rep SumTypeEncoding x -> SumTypeEncoding) -> Generic SumTypeEncoding forall x. Rep SumTypeEncoding x -> SumTypeEncoding forall x. SumTypeEncoding -> Rep SumTypeEncoding x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a $cto :: forall x. Rep SumTypeEncoding x -> SumTypeEncoding $cfrom :: forall x. SumTypeEncoding -> Rep SumTypeEncoding x Generic) newtype PartOfSum f a = PartOfSum { PartOfSum f a -> f a getPartOfSum :: f a }