{-# LANGUAGE DeriveFunctor #-}
{-# OPTIONS_HADDOCK not-home #-}
module Database.LSMTree.Internal.Range (
Range (..)
) where
import Control.DeepSeq (NFData (..))
data Range k =
FromToExcluding k k
| FromToIncluding k k
deriving stock (Int -> Range k -> ShowS
[Range k] -> ShowS
Range k -> String
(Int -> Range k -> ShowS)
-> (Range k -> String) -> ([Range k] -> ShowS) -> Show (Range k)
forall k. Show k => Int -> Range k -> ShowS
forall k. Show k => [Range k] -> ShowS
forall k. Show k => Range k -> String
forall a.
(Int -> a -> ShowS) -> (a -> String) -> ([a] -> ShowS) -> Show a
$cshowsPrec :: forall k. Show k => Int -> Range k -> ShowS
showsPrec :: Int -> Range k -> ShowS
$cshow :: forall k. Show k => Range k -> String
show :: Range k -> String
$cshowList :: forall k. Show k => [Range k] -> ShowS
showList :: [Range k] -> ShowS
Show, Range k -> Range k -> Bool
(Range k -> Range k -> Bool)
-> (Range k -> Range k -> Bool) -> Eq (Range k)
forall k. Eq k => Range k -> Range k -> Bool
forall a. (a -> a -> Bool) -> (a -> a -> Bool) -> Eq a
$c== :: forall k. Eq k => Range k -> Range k -> Bool
== :: Range k -> Range k -> Bool
$c/= :: forall k. Eq k => Range k -> Range k -> Bool
/= :: Range k -> Range k -> Bool
Eq, (forall a b. (a -> b) -> Range a -> Range b)
-> (forall a b. a -> Range b -> Range a) -> Functor Range
forall a b. a -> Range b -> Range a
forall a b. (a -> b) -> Range a -> Range b
forall (f :: * -> *).
(forall a b. (a -> b) -> f a -> f b)
-> (forall a b. a -> f b -> f a) -> Functor f
$cfmap :: forall a b. (a -> b) -> Range a -> Range b
fmap :: forall a b. (a -> b) -> Range a -> Range b
$c<$ :: forall a b. a -> Range b -> Range a
<$ :: forall a b. a -> Range b -> Range a
Functor)
instance NFData k => NFData (Range k) where
rnf :: Range k -> ()
rnf (FromToExcluding k
k1 k
k2) = k -> ()
forall a. NFData a => a -> ()
rnf k
k1 () -> () -> ()
forall a b. a -> b -> b
`seq` k -> ()
forall a. NFData a => a -> ()
rnf k
k2
rnf (FromToIncluding k
k1 k
k2) = k -> ()
forall a. NFData a => a -> ()
rnf k
k1 () -> () -> ()
forall a b. a -> b -> b
`seq` k -> ()
forall a. NFData a => a -> ()
rnf k
k2