Copyright | (C) Frank Staals |
---|---|
License | see the LICENSE file |
Maintainer | Frank Staals |
Safe Haskell | Safe-Inferred |
Language | GHC2021 |
HGeometry.Interval.Internal
Description
Intervals
Synopsis
- data Interval endPoint r where
- pattern Interval :: endPoint r -> endPoint r -> Interval endPoint r
- pattern ClosedInterval :: r -> r -> ClosedInterval r
- pattern OpenInterval :: r -> r -> OpenInterval r
- type ClosedInterval r = Interval (EndPoint Closed) r
- type OpenInterval r = Interval (EndPoint Open) r
- asClosedInterval :: Interval_ interval r => interval -> Maybe (ClosedInterval r)
- asOpenInterval :: Interval_ interval r => interval -> Maybe (OpenInterval r)
- asAnInterval :: Interval_ interval r => interval -> Interval AnEndPoint r
- isIntervalOfType :: Interval_ interval r => EndPointType -> EndPointType -> interval -> Bool
- data Interval_x_IntervalIntersection r interval
- = Interval_x_Interval_Point !r
- | Interval_x_Interval_Contained !interval
- | Interval_x_Interval_Partial !interval
Documentation
data Interval endPoint r where Source #
Data type representing intervals
Bundled Patterns
pattern Interval :: endPoint r -> endPoint r -> Interval endPoint r | Construct an interval |
pattern ClosedInterval :: r -> r -> ClosedInterval r | Construct a closed interval |
pattern OpenInterval :: r -> r -> OpenInterval r | Construct an open ended interval |
Instances
type ClosedInterval r = Interval (EndPoint Closed) r Source #
Cosed intervals (using a boxed representation)
type OpenInterval r = Interval (EndPoint Open) r Source #
Open intervals (using a boxed representation)
asClosedInterval :: Interval_ interval r => interval -> Maybe (ClosedInterval r) Source #
Try to interpret the interval as a ClosedInterval, i.e. with both endpoints Closed
asOpenInterval :: Interval_ interval r => interval -> Maybe (OpenInterval r) Source #
Try to interpret the interval as an OpenInterval, i.e. with both endpoints open
asAnInterval :: Interval_ interval r => interval -> Interval AnEndPoint r Source #
convert into an interval whose endpoints are explicitly tagged.
Arguments
:: Interval_ interval r | |
=> EndPointType | startPoint type |
-> EndPointType | endPoint type |
-> interval | |
-> Bool |
Test if the interval is of a particular type
data Interval_x_IntervalIntersection r interval Source #
Data type representing intersections of intervals of the same type
Constructors
Interval_x_Interval_Point !r | |
Interval_x_Interval_Contained !interval | |
Interval_x_Interval_Partial !interval |