| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
PlutusLedgerApi.V1.Interval
Description
A type for intervals and associated functions.
Synopsis
- data Interval a = Interval {
- ivFrom :: LowerBound a
- ivTo :: UpperBound a
- data UpperBound a = UpperBound (Extended a) Closure
- data LowerBound a = LowerBound (Extended a) Closure
- data Extended a
- type Closure = Bool
- member :: (Enum a, Ord a) => a -> Interval a -> Bool
- interval :: a -> a -> Interval a
- from :: a -> Interval a
- to :: a -> Interval a
- always :: Interval a
- never :: Interval a
- singleton :: a -> Interval a
- hull :: (Enum a, Ord a) => Interval a -> Interval a -> Interval a
- intersection :: (Enum a, Ord a) => Interval a -> Interval a -> Interval a
- overlaps :: (Enum a, Ord a) => Interval a -> Interval a -> Bool
- contains :: (Enum a, Ord a) => Interval a -> Interval a -> Bool
- isEmpty :: (Enum a, Ord a) => Interval a -> Bool
- before :: (Enum a, Ord a) => a -> Interval a -> Bool
- after :: (Enum a, Ord a) => a -> Interval a -> Bool
- lowerBound :: a -> LowerBound a
- upperBound :: a -> UpperBound a
- strictLowerBound :: a -> LowerBound a
- strictUpperBound :: a -> UpperBound a
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.
Constructors
| Interval | |
Fields
| |
Instances
| Functor Interval Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Typeable DefaultUni a, Lift DefaultUni (LowerBound a), Lift DefaultUni (UpperBound a)) => Lift DefaultUni (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| Generic (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Associated Types
| |||||
| Show a => Show (Interval a) Source # | |||||
| NFData a => NFData (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Enum a, Ord a) => Eq (Interval a) Source # | |||||
| HasBlueprintDefinition a => HasBlueprintDefinition (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| (Enum a, Ord a) => Eq (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| FromData a => FromData (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (Interval a) # | |||||
| ToData a => ToData (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods toBuiltinData :: Interval a -> BuiltinData # | |||||
| UnsafeFromData a => UnsafeFromData (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods unsafeFromBuiltinData :: BuiltinData -> Interval a # | |||||
| (Enum a, Ord a) => BoundedJoinSemiLattice (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Enum a, Ord a) => BoundedMeetSemiLattice (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Enum a, Ord a) => JoinSemiLattice (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Enum a, Ord a) => MeetSemiLattice (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| Pretty a => Pretty (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (HasBlueprintDefinition a, HasSchemaDefinition (LowerBound a) referencedTypes, HasSchemaDefinition (UpperBound a) referencedTypes) => HasBlueprintSchema (Interval a) referencedTypes Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods schema :: Schema referencedTypes | |||||
| Typeable DefaultUni Interval Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| type Rep (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval type Rep (Interval a) = D1 ('MetaData "Interval" "PlutusLedgerApi.V1.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'False) (C1 ('MetaCons "Interval" 'PrefixI 'True) (S1 ('MetaSel ('Just "ivFrom") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (LowerBound a)) :*: S1 ('MetaSel ('Just "ivTo") 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (UpperBound a)))) | |||||
| type Unroll (Interval a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
data UpperBound a Source #
The upper bound of an interval.
Constructors
| UpperBound (Extended a) Closure |
Instances
data LowerBound a Source #
The lower bound of an interval.
Constructors
| LowerBound (Extended a) Closure |
Instances
| Functor LowerBound Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods fmap :: (a -> b) -> LowerBound a -> LowerBound b | |||||
| (Typeable DefaultUni a, Lift DefaultUni (Extended a)) => Lift DefaultUni (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods lift :: LowerBound a -> RTCompile DefaultUni fun (Term TyName Name DefaultUni fun ()) | |||||
| Generic (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Associated Types
Methods from :: LowerBound a -> Rep (LowerBound a) x Source # to :: Rep (LowerBound a) x -> LowerBound a Source # | |||||
| Show a => Show (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| NFData a => NFData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods rnf :: LowerBound a -> () Source # | |||||
| (Enum a, Eq a) => Eq (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods (==) :: LowerBound a -> LowerBound a -> Bool Source # (/=) :: LowerBound a -> LowerBound a -> Bool Source # | |||||
| (Enum a, Ord a) => Ord (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.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.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| (Enum a, Eq a) => Eq (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods (==) :: LowerBound a -> LowerBound a -> Bool | |||||
| FromData a => FromData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (LowerBound a) # | |||||
| ToData a => ToData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods toBuiltinData :: LowerBound a -> BuiltinData # | |||||
| UnsafeFromData a => UnsafeFromData (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods unsafeFromBuiltinData :: BuiltinData -> LowerBound a # | |||||
| (Enum a, Ord a) => Ord (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.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 => Pretty (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (HasSchemaDefinition a referencedTypes, HasBlueprintDefinition a, HasSchemaDefinition (Extended a) referencedTypes, HasSchemaDefinition Closure referencedTypes) => HasBlueprintSchema (LowerBound a) referencedTypes Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods schema :: Schema referencedTypes | |||||
| Typeable DefaultUni LowerBound Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods typeRep :: Proxy LowerBound -> RTCompile DefaultUni fun (Type TyName DefaultUni ()) | |||||
| type Rep (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval type Rep (LowerBound a) = D1 ('MetaData "LowerBound" "PlutusLedgerApi.V1.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'False) (C1 ('MetaCons "LowerBound" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Extended a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Closure))) | |||||
| type Unroll (LowerBound a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
A set extended with a positive and negative infinity.
Instances
| Functor Extended Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (Typeable DefaultUni a, Lift DefaultUni a) => Lift DefaultUni (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| Generic (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Associated Types
| |||||
| Show a => Show (Extended a) Source # | |||||
| NFData a => NFData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| Eq a => Eq (Extended a) Source # | |||||
| Ord a => Ord (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.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.Interval Associated Types
Methods definitionId :: DefinitionId | |||||
| Eq a => Eq (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| FromData a => FromData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods fromBuiltinData :: BuiltinData -> Maybe (Extended a) # | |||||
| ToData a => ToData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods toBuiltinData :: Extended a -> BuiltinData # | |||||
| UnsafeFromData a => UnsafeFromData (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods unsafeFromBuiltinData :: BuiltinData -> Extended a # | |||||
| Ord a => Ord (Extended a) Source # | |||||
| Pretty a => Pretty (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| (HasBlueprintDefinition a, HasSchemaDefinition a referencedTypes) => HasBlueprintSchema (Extended a) referencedTypes Source # | |||||
Defined in PlutusLedgerApi.V1.Interval Methods schema :: Schema referencedTypes | |||||
| Typeable DefaultUni Extended Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
| type Rep (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval type Rep (Extended a) = D1 ('MetaData "Extended" "PlutusLedgerApi.V1.Interval" "plutus-ledger-api-1.60.0.0-G1HmqwHNllaA7AnJNjAfhP" 'False) (C1 ('MetaCons "NegInf" 'PrefixI 'False) (U1 :: Type -> Type) :+: (C1 ('MetaCons "Finite" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 a)) :+: C1 ('MetaCons "PosInf" 'PrefixI 'False) (U1 :: Type -> Type))) | |||||
| type Unroll (Extended a) Source # | |||||
Defined in PlutusLedgerApi.V1.Interval | |||||
member :: (Enum a, Ord a) => a -> Interval a -> Bool Source #
Check whether a value is in an interval.
interval :: 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 :: 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 :: 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]
singleton :: 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) => Interval a -> Interval a -> Interval a Source #
'hull a b' is the smallest interval containing a and b.
intersection :: (Enum a, Ord 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) => 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.
before :: (Enum a, Ord a) => a -> Interval a -> Bool Source #
Check if a value is earlier than the beginning of an Interval.
after :: (Enum a, Ord a) => a -> Interval a -> Bool Source #
Check if a value is later than the end of an Interval.
lowerBound :: 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 :: 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 :: 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 :: 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.