boxContains :: (Additive v, Foldable v, Ord n) => BoundingBox v n -> Point v n -> Bool
boxContains b p = maybe False test $ getCorners b
  where
    test (l, h) = F.and (liftI2 (<=) l p)
               && F.and (liftI2 (<=) p h)

-- | Check whether a point is /strictly/ contained in a bounding box,
--   /i.e./ excluding the boundary.
boxContains :: (Additive v, Foldable v, Ord n) => BoundingBox v n -> Point v n -> Bool
boxContains b p = maybe False test $ getCorners b
  where
    test (l, h) = F.and (liftI2 (<=) l p)
               && F.and (liftI2 (<=) p h)

-- | Check whether a point is /strictly/ contained in a bounding box,
--   /i.e./ excluding the boundary.
boxContains b p = maybe False test $ getCorners b
  where
    test (l, h) = F.and (liftI2 (<=) l p)
               && F.and (liftI2 (<=) p h)

-- | Check whether a point is /strictly/ contained in a bounding box,
--   /i.e./ excluding the boundary.