| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusLedgerApi.V1.Data.Interval
Description
A type for intervals and associated functions.
Synopsis
- data Interval a
- pattern Interval :: forall a. (ToData a, UnsafeFromData a) => LowerBound a -> UpperBound a -> Interval a
- matchInterval :: forall a r. UnsafeFromData a => Interval a -> (LowerBound a -> UpperBound a -> r) -> r
- ivFrom :: (ToData a, UnsafeFromData a) => Interval a -> LowerBound a
- ivTo :: (ToData a, UnsafeFromData a) => Interval a -> UpperBound a
- data UpperBound a
- pattern UpperBound :: forall a. (ToData a, UnsafeFromData a) => Extended a -> Closure -> UpperBound a
- matchUpperBound :: forall a r. UnsafeFromData a => UpperBound a -> (Extended a -> Closure -> r) -> r
- data LowerBound a
- pattern LowerBound :: forall a. (ToData a, UnsafeFromData a) => Extended a -> Closure -> LowerBound a
- matchLowerBound :: forall a r. UnsafeFromData a => LowerBound a -> (Extended a -> Closure -> r) -> r
- data Extended a
- matchExtended :: forall a r. UnsafeFromData a => Extended a -> r -> (a -> r) -> r -> r
- pattern NegInf :: forall a. Extended a
- pattern Finite :: forall a. (ToData a, UnsafeFromData a) => a -> Extended a
- pattern PosInf :: forall a. Extended a
- type Closure = Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool
- lowerBound :: (ToData a, UnsafeFromData a) => a -> LowerBound a
- upperBound :: (ToData a, UnsafeFromData a) => a -> UpperBound a
- strictLowerBound :: (ToData a, UnsafeFromData a) => a -> LowerBound a
- strictUpperBound :: (ToData a, UnsafeFromData a) => a -> UpperBound a
- mapInterval :: (ToData a1, ToData a2, UnsafeFromData a1, UnsafeFromData a2) => (a1 -> a2) -> Interval a1 -> Interval a2
Documentation
An interval of as.
The interval may be either closed or open at either end, meaning that the endpoints may or may not be included in the interval.
The interval can also be unbounded on either side.
The Eq instance gives equality of the intervals, not structural equality.
There is no Enum in order to
handle non-inclusive endpoints. For this reason, it may not be safe to
use Intervals with non-inclusive endpoints on types whose Enum
instances have partial methods.
Instances
| Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool # Check whether a value is in an interval. interval :: (ToData a, UnsafeFromData a) => a -> a -> Interval a #
from :: (ToData a, UnsafeFromData a) => a -> Interval a #
to :: (ToData a, UnsafeFromData a) => a -> Interval a #
always :: (ToData a, UnsafeFromData a) => Interval a # An never :: (ToData a, UnsafeFromData a) => Interval a # singleton :: (ToData a, UnsafeFromData a) => a -> Interval a # Create an interval that includes just a single concrete point hull :: (Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Interval a # 'intersection a b' is the largest interval that is contained in overlaps :: (Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Bool # Check whether two intervals overlap, that is, whether there is a value that is a member of both intervals. isEmpty :: (Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool # Check if a value is later than the end of an lowerBound :: (ToData a, UnsafeFromData a) => a -> LowerBound a # Construct a lower bound from a value. The resulting bound includes all values that are equal or greater than the input value. upperBound :: (ToData a, UnsafeFromData a) => a -> UpperBound a # Construct an upper bound from a value. The resulting bound includes all values that are equal or smaller than the input value. strictLowerBound :: (ToData a, UnsafeFromData a) => a -> LowerBound a # Construct a strict lower bound from a value. The resulting bound includes all values that are (strictly) greater than the input value. strictUpperBound :: (ToData a, UnsafeFromData a) => a -> UpperBound a # Construct a strict upper bound from a value. The resulting bound includes all values that are (strictly) smaller than the input value. mapInterval :: (ToData a1, ToData a2, UnsafeFromData a1, UnsafeFromData a2) => (a1 -> a2) -> Interval a1 -> Interval a2 # |