fortran-vars-0.1.0: src/Language/Fortran/Vars/Range.hs
module Language.Fortran.Vars.Range
( Range
, overlap
, anyOverlap
)
where
-- | Inclusive range used to represent a piece of memory
type Range = (Int, Int) -- ^ (start, end)
-- | Return True if two ranges have overlap
overlap :: Range -> Range -> Bool
overlap (s1, e1) (s2, e2) = s1 <= e2 && s2 <= e1
-- | Return True if a given 'Range' overlaps any 'Range' in the
-- provided list
anyOverlap :: Range -> [Range] -> Bool
anyOverlap range = any (overlap range)