cmp lvs t l r l' r' = if r < l' || r' < l then 0 else (rlv - llv + 1)
    where
        llv = if l <= l' && l' <= r then lvs ! l' else snd $ fromJust $ ptfl t Nothing l
        rlv = if l <= r' && r' <= r then lvs ! r' else snd $ fromJust $ ptfr t Nothing r

-- Misc
cmp lvs t l r l' r' = if r < l' || r' < l then 0 else (rlv - llv + 1)
    where
        llv = if l <= l' && l' <= r then lvs ! l' else snd $ fromJust $ ptfl t Nothing l
        rlv = if l <= r' && r' <= r then lvs ! r' else snd $ fromJust $ ptfr t Nothing r

-- Misc
cmp lvs t l r l' r' = if r < l' || r' < l then 0 else (rlv - llv + 1)
    where
        llv = if l <= l' && l' <= r then lvs ! l' else snd $ fromJust $ ptfl t Nothing l
        rlv = if l <= r' && r' <= r then lvs ! r' else snd $ fromJust $ ptfr t Nothing r

-- Misc