module Language.Fortran.Vars.Range
( Range
, overlap
, anyOverlap
)
where
type Range = (Int, Int)
overlap :: Range -> Range -> Bool
overlap :: Range -> Range -> Bool
overlap (Int
s1, Int
e1) (Int
s2, Int
e2) = Int
s1 Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
e2 Bool -> Bool -> Bool
&& Int
s2 Int -> Int -> Bool
forall a. Ord a => a -> a -> Bool
<= Int
e1
anyOverlap :: Range -> [Range] -> Bool
anyOverlap :: Range -> [Range] -> Bool
anyOverlap Range
range = (Range -> Bool) -> [Range] -> Bool
forall (t :: * -> *) a. Foldable t => (a -> Bool) -> t a -> Bool
any (Range -> Range -> Bool
overlap Range
range)