{-# LANGUAGE TemplateHaskell #-}
module Data.Geometry.SegmentTree( module Data.Geometry.SegmentTree.Generic
                                ) where


import           Data.Ext
import           Data.Semigroup
import           Control.Lens
import           Data.List.NonEmpty (NonEmpty)
import qualified Data.List.NonEmpty as NonEmpty
import qualified Data.List as List
import           Data.BinaryTree
import           Data.Range
import           Data.Geometry.Interval
import           Data.Geometry.SegmentTree.Generic
import           Data.Geometry.Interval.Util
import           Data.Geometry.Properties
import           Data.Geometry.IntervalTree (IntervalLike(..))