| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
PlutusLedgerApi.V1.Data.Interval
Description
A type for intervals and associated functions.
Synopsis
- data Interval a
- pattern Interval :: (ToData a, UnsafeFromData a) => LowerBound a -> UpperBound a -> Interval a
- matchInterval :: 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 :: (ToData a, UnsafeFromData a) => Extended a -> Closure -> UpperBound a
- matchUpperBound :: UnsafeFromData a => UpperBound a -> (Extended a -> Closure -> r) -> r
- data LowerBound a
- pattern LowerBound :: (ToData a, UnsafeFromData a) => Extended a -> Closure -> LowerBound a
- matchLowerBound :: UnsafeFromData a => LowerBound a -> (Extended a -> Closure -> r) -> r
- data Extended a
- matchExtended :: UnsafeFromData a => Extended a -> r -> (a -> r) -> r -> r
- pattern NegInf :: Extended a
- pattern Finite :: (ToData a, UnsafeFromData a) => a -> Extended a
- pattern PosInf :: Extended a
- type Closure = Bool
- member :: (Enum a, Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool
- 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
- never :: (ToData a, UnsafeFromData a) => Interval a
- singleton :: (ToData a, UnsafeFromData a) => a -> Interval a
- hull :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Interval a
- intersection :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Interval a
- overlaps :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Bool
- contains :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Bool
- isEmpty :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Bool
- before :: (Enum a, Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool
- after :: (Enum a, 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 Ord instance, but contains gives a partial order.
Note that some of the functions on Interval rely on 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
pattern Interval :: (ToData a, UnsafeFromData a) => LowerBound a -> UpperBound a -> Interval a Source #
matchInterval :: UnsafeFromData a => Interval a -> (LowerBound a -> UpperBound a -> r) -> r Source #
ivFrom :: (ToData a, UnsafeFromData a) => Interval a -> LowerBound a Source #
ivTo :: (ToData a, UnsafeFromData a) => Interval a -> UpperBound a Source #
data UpperBound a Source #
The upper bound of an interval.
Instances
| Lift DefaultUni (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods lift :: UpperBound a -> RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) | |||||
| Generic (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
Methods from :: UpperBound a -> Rep (UpperBound a) x Source # to :: Rep (UpperBound a) x -> UpperBound a Source # | |||||
| Show (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| NFData (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods rnf :: UpperBound a -> () Source # | |||||
| (Enum a, Eq a, ToData a, UnsafeFromData a) => Eq (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods (==) :: UpperBound a -> UpperBound a -> Bool Source # (/=) :: UpperBound a -> UpperBound a -> Bool Source # | |||||
| (Enum a, Ord a, ToData a, UnsafeFromData a) => Ord (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods compare :: UpperBound a -> UpperBound a -> Ordering Source # (<) :: UpperBound a -> UpperBound a -> Bool Source # (<=) :: UpperBound a -> UpperBound a -> Bool Source # (>) :: UpperBound a -> UpperBound a -> Bool Source # (>=) :: UpperBound a -> UpperBound a -> Bool Source # max :: UpperBound a -> UpperBound a -> UpperBound a Source # min :: UpperBound a -> UpperBound a -> UpperBound a Source # | |||||
| HasBlueprintDefinition (Extended a) => HasBlueprintDefinition (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| (Enum a, Eq a, ToData a, UnsafeFromData a) => Eq (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods (==) :: UpperBound a -> UpperBound a -> Bool | |||||
| FromData (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (UpperBound a) # | |||||
| ToData (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods toBuiltinData :: UpperBound a -> BuiltinData # | |||||
| UnsafeFromData (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods unsafeFromBuiltinData :: BuiltinData -> UpperBound a # | |||||
| (Enum a, Ord a, ToData a, UnsafeFromData a) => Ord (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods compare :: UpperBound a -> UpperBound a -> Ordering (<) :: UpperBound a -> UpperBound a -> Bool (<=) :: UpperBound a -> UpperBound a -> Bool (>) :: UpperBound a -> UpperBound a -> Bool (>=) :: UpperBound a -> UpperBound a -> Bool max :: UpperBound a -> UpperBound a -> UpperBound a min :: UpperBound a -> UpperBound a -> UpperBound a | |||||
| (Pretty a, ToData a, UnsafeFromData a) => Pretty (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| (HasSchemaDefinition a referencedTypes, HasBlueprintDefinition a, HasSchemaDefinition (Extended a) referencedTypes, HasSchemaDefinition Closure referencedTypes) => HasBlueprintSchema (UpperBound a) referencedTypes Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods schema :: Schema referencedTypes | |||||
| Typeable DefaultUni UpperBound Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods typeRep :: Proxy UpperBound -> RTCompile DefaultUni fun (Type TyName DefaultUni ()) | |||||
| type Rep (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval type Rep (UpperBound a) = D1 ('MetaData "UpperBound" "PlutusLedgerApi.V1.Data.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'True) (C1 ('MetaCons "UpperBound_6989586621679174429" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) | |||||
| type Unroll (UpperBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
pattern UpperBound :: (ToData a, UnsafeFromData a) => Extended a -> Closure -> UpperBound a Source #
matchUpperBound :: UnsafeFromData a => UpperBound a -> (Extended a -> Closure -> r) -> r Source #
data LowerBound a Source #
The lower bound of an interval.
Instances
| Lift DefaultUni (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods lift :: LowerBound a -> RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) | |||||
| Generic (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
Methods from :: LowerBound a -> Rep (LowerBound a) x Source # to :: Rep (LowerBound a) x -> LowerBound a Source # | |||||
| Show (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| NFData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods rnf :: LowerBound a -> () Source # | |||||
| (Enum a, Eq a, ToData a, UnsafeFromData a) => Eq (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods (==) :: LowerBound a -> LowerBound a -> Bool Source # (/=) :: LowerBound a -> LowerBound a -> Bool Source # | |||||
| (Enum a, Ord a, ToData a, UnsafeFromData a) => Ord (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods compare :: LowerBound a -> LowerBound a -> Ordering Source # (<) :: LowerBound a -> LowerBound a -> Bool Source # (<=) :: LowerBound a -> LowerBound a -> Bool Source # (>) :: LowerBound a -> LowerBound a -> Bool Source # (>=) :: LowerBound a -> LowerBound a -> Bool Source # max :: LowerBound a -> LowerBound a -> LowerBound a Source # min :: LowerBound a -> LowerBound a -> LowerBound a Source # | |||||
| HasBlueprintDefinition (Extended a) => HasBlueprintDefinition (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| (Enum a, Eq a, ToData a, UnsafeFromData a) => Eq (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods (==) :: LowerBound a -> LowerBound a -> Bool | |||||
| FromData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (LowerBound a) # | |||||
| ToData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods toBuiltinData :: LowerBound a -> BuiltinData # | |||||
| UnsafeFromData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods unsafeFromBuiltinData :: BuiltinData -> LowerBound a # | |||||
| (Enum a, Ord a, ToData a, UnsafeFromData a) => Ord (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods compare :: LowerBound a -> LowerBound a -> Ordering (<) :: LowerBound a -> LowerBound a -> Bool (<=) :: LowerBound a -> LowerBound a -> Bool (>) :: LowerBound a -> LowerBound a -> Bool (>=) :: LowerBound a -> LowerBound a -> Bool max :: LowerBound a -> LowerBound a -> LowerBound a min :: LowerBound a -> LowerBound a -> LowerBound a | |||||
| (Pretty a, ToData a, UnsafeFromData a) => Pretty (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| (HasSchemaDefinition a referencedTypes, HasBlueprintDefinition a, HasSchemaDefinition (Extended a) referencedTypes, HasSchemaDefinition Closure referencedTypes) => HasBlueprintSchema (LowerBound a) referencedTypes Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods schema :: Schema referencedTypes | |||||
| Typeable DefaultUni LowerBound Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods typeRep :: Proxy LowerBound -> RTCompile DefaultUni fun (Type TyName DefaultUni ()) | |||||
| type Rep (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval type Rep (LowerBound a) = D1 ('MetaData "LowerBound" "PlutusLedgerApi.V1.Data.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'True) (C1 ('MetaCons "LowerBound_6989586621679175036" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) | |||||
| type Unroll (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
pattern LowerBound :: (ToData a, UnsafeFromData a) => Extended a -> Closure -> LowerBound a Source #
matchLowerBound :: UnsafeFromData a => LowerBound a -> (Extended a -> Closure -> r) -> r Source #
A set extended with a positive and negative infinity.
Instances
| Lift DefaultUni (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| Generic (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
| |||||
| Show (Extended a) Source # | |||||
| NFData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| (Eq a, ToData a, UnsafeFromData a) => Eq (Extended a) Source # | |||||
| (Ord a, ToData a, UnsafeFromData a) => Ord (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods compare :: Extended a -> Extended a -> Ordering Source # (<) :: Extended a -> Extended a -> Bool Source # (<=) :: Extended a -> Extended a -> Bool Source # (>) :: Extended a -> Extended a -> Bool Source # (>=) :: Extended a -> Extended a -> Bool Source # | |||||
| HasBlueprintDefinition a => HasBlueprintDefinition (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| (Eq a, ToData a, UnsafeFromData a) => Eq (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| FromData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (Extended a) # | |||||
| ToData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods toBuiltinData :: Extended a -> BuiltinData # | |||||
| UnsafeFromData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval Methods unsafeFromBuiltinData :: BuiltinData -> Extended a # | |||||
| (Ord a, ToData a, UnsafeFromData a) => Ord (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| (Pretty a, ToData a, UnsafeFromData a) => Pretty (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| Typeable DefaultUni Extended Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
| type Rep (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval type Rep (Extended a) = D1 ('MetaData "Extended" "PlutusLedgerApi.V1.Data.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'True) (C1 ('MetaCons "Extended_6989586621679173605" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 BuiltinData))) | |||||
| type Unroll (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Data.Interval | |||||
matchExtended :: UnsafeFromData a => Extended a -> r -> (a -> r) -> r -> r Source #
member :: (Enum a, Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool Source #
Check whether a value is in an interval.
interval :: (ToData a, UnsafeFromData a) => a -> a -> Interval a Source #
interval a b includes all values that are greater than or equal to a
and smaller than or equal to b. Therefore it includes a and b. In math. notation: [a,b]
from :: (ToData a, UnsafeFromData a) => a -> Interval a Source #
from a is an Interval that includes all values that are
greater than or equal to a. In math. notation: [a,+∞]
to :: (ToData a, UnsafeFromData a) => a -> Interval a Source #
to a is an Interval that includes all values that are
smaller than or equal to a. In math. notation: [-∞,a]
always :: (ToData a, UnsafeFromData a) => Interval a Source #
An Interval that covers every slot. In math. notation [-∞,+∞]
singleton :: (ToData a, UnsafeFromData a) => a -> Interval a Source #
Create an interval that includes just a single concrete point a,
i.e. having the same non-strict lower and upper bounds. In math.notation: [a,a]
hull :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Interval a Source #
'hull a b' is the smallest interval containing a and b.
intersection :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Interval a Source #
'intersection a b' is the largest interval that is contained in a and in
b, if it exists.
overlaps :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Bool Source #
Check whether two intervals overlap, that is, whether there is a value that is a member of both intervals.
contains :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Interval a -> Bool Source #
isEmpty :: (Enum a, Ord a, ToData a, UnsafeFromData a) => Interval a -> Bool Source #
Check if an Interval is empty.
before :: (Enum a, Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool Source #
Check if a value is earlier than the beginning of an Interval.
after :: (Enum a, Ord a, ToData a, UnsafeFromData a) => a -> Interval a -> Bool Source #
Check if a value is later than the end of an Interval.
lowerBound :: (ToData a, UnsafeFromData a) => a -> LowerBound a Source #
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 Source #
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 Source #
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 Source #
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 Source #