module PostgreSQL.Binary.Range where import PostgreSQL.Binary.Prelude data Range a = Empty | Range !(Bound a) !(Bound a) deriving (Range a -> Range a -> Bool (Range a -> Range a -> Bool) -> (Range a -> Range a -> Bool) -> Eq (Range a) forall a. Eq a => Range a -> Range a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Range a -> Range a -> Bool == :: Range a -> Range a -> Bool $c/= :: forall a. Eq a => Range a -> Range a -> Bool /= :: Range a -> Range a -> Bool Eq, Int -> Range a -> ShowS [Range a] -> ShowS Range a -> String (Int -> Range a -> ShowS) -> (Range a -> String) -> ([Range a] -> ShowS) -> Show (Range a) forall a. Show a => Int -> Range a -> ShowS forall a. Show a => [Range a] -> ShowS forall a. Show a => Range a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Range a -> ShowS showsPrec :: Int -> Range a -> ShowS $cshow :: forall a. Show a => Range a -> String show :: Range a -> String $cshowList :: forall a. Show a => [Range a] -> ShowS showList :: [Range a] -> ShowS Show, Eq (Range a) Eq (Range a) => (Range a -> Range a -> Ordering) -> (Range a -> Range a -> Bool) -> (Range a -> Range a -> Bool) -> (Range a -> Range a -> Bool) -> (Range a -> Range a -> Bool) -> (Range a -> Range a -> Range a) -> (Range a -> Range a -> Range a) -> Ord (Range a) Range a -> Range a -> Bool Range a -> Range a -> Ordering Range a -> Range a -> Range a 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 forall a. Ord a => Eq (Range a) forall a. Ord a => Range a -> Range a -> Bool forall a. Ord a => Range a -> Range a -> Ordering forall a. Ord a => Range a -> Range a -> Range a $ccompare :: forall a. Ord a => Range a -> Range a -> Ordering compare :: Range a -> Range a -> Ordering $c< :: forall a. Ord a => Range a -> Range a -> Bool < :: Range a -> Range a -> Bool $c<= :: forall a. Ord a => Range a -> Range a -> Bool <= :: Range a -> Range a -> Bool $c> :: forall a. Ord a => Range a -> Range a -> Bool > :: Range a -> Range a -> Bool $c>= :: forall a. Ord a => Range a -> Range a -> Bool >= :: Range a -> Range a -> Bool $cmax :: forall a. Ord a => Range a -> Range a -> Range a max :: Range a -> Range a -> Range a $cmin :: forall a. Ord a => Range a -> Range a -> Range a min :: Range a -> Range a -> Range a Ord, (forall x. Range a -> Rep (Range a) x) -> (forall x. Rep (Range a) x -> Range a) -> Generic (Range a) forall x. Rep (Range a) x -> Range a forall x. Range a -> Rep (Range a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Range a) x -> Range a forall a x. Range a -> Rep (Range a) x $cfrom :: forall a x. Range a -> Rep (Range a) x from :: forall x. Range a -> Rep (Range a) x $cto :: forall a x. Rep (Range a) x -> Range a to :: forall x. Rep (Range a) x -> Range a Generic) data Bound a = Incl !a | Excl !a | Inf deriving (Bound a -> Bound a -> Bool (Bound a -> Bound a -> Bool) -> (Bound a -> Bound a -> Bool) -> Eq (Bound a) forall a. Eq a => Bound a -> Bound a -> Bool forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a $c== :: forall a. Eq a => Bound a -> Bound a -> Bool == :: Bound a -> Bound a -> Bool $c/= :: forall a. Eq a => Bound a -> Bound a -> Bool /= :: Bound a -> Bound a -> Bool Eq, Int -> Bound a -> ShowS [Bound a] -> ShowS Bound a -> String (Int -> Bound a -> ShowS) -> (Bound a -> String) -> ([Bound a] -> ShowS) -> Show (Bound a) forall a. Show a => Int -> Bound a -> ShowS forall a. Show a => [Bound a] -> ShowS forall a. Show a => Bound a -> String forall a. (Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a $cshowsPrec :: forall a. Show a => Int -> Bound a -> ShowS showsPrec :: Int -> Bound a -> ShowS $cshow :: forall a. Show a => Bound a -> String show :: Bound a -> String $cshowList :: forall a. Show a => [Bound a] -> ShowS showList :: [Bound a] -> ShowS Show, Eq (Bound a) Eq (Bound a) => (Bound a -> Bound a -> Ordering) -> (Bound a -> Bound a -> Bool) -> (Bound a -> Bound a -> Bool) -> (Bound a -> Bound a -> Bool) -> (Bound a -> Bound a -> Bool) -> (Bound a -> Bound a -> Bound a) -> (Bound a -> Bound a -> Bound a) -> Ord (Bound a) Bound a -> Bound a -> Bool Bound a -> Bound a -> Ordering Bound a -> Bound a -> Bound a 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 forall a. Ord a => Eq (Bound a) forall a. Ord a => Bound a -> Bound a -> Bool forall a. Ord a => Bound a -> Bound a -> Ordering forall a. Ord a => Bound a -> Bound a -> Bound a $ccompare :: forall a. Ord a => Bound a -> Bound a -> Ordering compare :: Bound a -> Bound a -> Ordering $c< :: forall a. Ord a => Bound a -> Bound a -> Bool < :: Bound a -> Bound a -> Bool $c<= :: forall a. Ord a => Bound a -> Bound a -> Bool <= :: Bound a -> Bound a -> Bool $c> :: forall a. Ord a => Bound a -> Bound a -> Bool > :: Bound a -> Bound a -> Bool $c>= :: forall a. Ord a => Bound a -> Bound a -> Bool >= :: Bound a -> Bound a -> Bool $cmax :: forall a. Ord a => Bound a -> Bound a -> Bound a max :: Bound a -> Bound a -> Bound a $cmin :: forall a. Ord a => Bound a -> Bound a -> Bound a min :: Bound a -> Bound a -> Bound a Ord, (forall x. Bound a -> Rep (Bound a) x) -> (forall x. Rep (Bound a) x -> Bound a) -> Generic (Bound a) forall x. Rep (Bound a) x -> Bound a forall x. Bound a -> Rep (Bound a) x forall a. (forall x. a -> Rep a x) -> (forall x. Rep a x -> a) -> Generic a forall a x. Rep (Bound a) x -> Bound a forall a x. Bound a -> Rep (Bound a) x $cfrom :: forall a x. Bound a -> Rep (Bound a) x from :: forall x. Bound a -> Rep (Bound a) x $cto :: forall a x. Rep (Bound a) x -> Bound a to :: forall x. Rep (Bound a) x -> Bound a Generic) type Multirange a = [Range a]