packages feed

range-1.0.0.0: Data/Range/Algebra/Range.hs

{-# LANGUAGE Safe #-}
module Data.Range.Algebra.Range where

import Data.Range.Data
import Data.Range.RangeInternal (exportRangeMerge, loadRanges)
import Data.Range.Algebra.Internal

import Control.Monad.Free

rangeAlgebra :: (Ord a) => Algebra RangeExprF [Range a]
rangeAlgebra = exportRangeMerge . iter rangeMergeAlgebra . Free . fmap (Pure . loadRanges)