{-# LANGUAGE Safe #-}
module Data.Range.Operators where
import Data.Range.Data
(+=+) :: a -> a -> Range a
+=+ :: forall a. a -> a -> Range a
(+=+) a
x a
y = Bound a -> Bound a -> Range a
forall a. Bound a -> Bound a -> Range a
SpanRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Inclusive) (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
y BoundType
Inclusive)
(+=*) :: a -> a -> Range a
+=* :: forall a. a -> a -> Range a
(+=*) a
x a
y = Bound a -> Bound a -> Range a
forall a. Bound a -> Bound a -> Range a
SpanRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Inclusive) (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
y BoundType
Exclusive)
(*=+) :: a -> a -> Range a
*=+ :: forall a. a -> a -> Range a
(*=+) a
x a
y = Bound a -> Bound a -> Range a
forall a. Bound a -> Bound a -> Range a
SpanRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Exclusive) (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
y BoundType
Inclusive)
(*=*) :: a -> a -> Range a
*=* :: forall a. a -> a -> Range a
(*=*) a
x a
y = Bound a -> Bound a -> Range a
forall a. Bound a -> Bound a -> Range a
SpanRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Exclusive) (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
y BoundType
Exclusive)
lbi :: a -> Range a
lbi :: forall a. a -> Range a
lbi a
x = Bound a -> Range a
forall a. Bound a -> Range a
LowerBoundRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Inclusive)
lbe :: a -> Range a
lbe :: forall a. a -> Range a
lbe a
x = Bound a -> Range a
forall a. Bound a -> Range a
LowerBoundRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Exclusive)
ubi :: a -> Range a
ubi :: forall a. a -> Range a
ubi a
x = Bound a -> Range a
forall a. Bound a -> Range a
UpperBoundRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Inclusive)
ube :: a -> Range a
ube :: forall a. a -> Range a
ube a
x = Bound a -> Range a
forall a. Bound a -> Range a
UpperBoundRange (a -> BoundType -> Bound a
forall a. a -> BoundType -> Bound a
Bound a
x BoundType
Exclusive)
inf :: Range a
inf :: forall a. Range a
inf = Range a
forall a. Range a
InfiniteRange