plutus-ledger-api-0.1.0.0: Interface to the Plutus ledger for the Cardano ledger.
Safe HaskellNone
LanguageHaskell2010

Plutus.V1.Ledger.Interval

Description

A type for intervals and associated functions.

Synopsis

Documentation

data Interval a Source #

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.

Constructors

Interval 

Fields

Instances

Instances details
Functor Interval Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

fmap :: (a -> b) -> Interval a -> Interval b Source #

(Typeable DefaultUni a, Lift DefaultUni (LowerBound a), Lift DefaultUni (UpperBound a)) => Lift DefaultUni (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: Interval a -> Interval a -> Bool Source #

(/=) :: Interval a -> Interval a -> Bool Source #

Ord a => Ord (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Show a => Show (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Generic (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Associated Types

type Rep (Interval a) :: Type -> Type Source #

Methods

from :: Interval a -> Rep (Interval a) x Source #

to :: Rep (Interval a) x -> Interval a Source #

Hashable a => Hashable (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

ToJSON a => ToJSON (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromJSON a => FromJSON (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

NFData a => NFData (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

rnf :: Interval a -> () Source #

Pretty a => Pretty (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

pretty :: Interval a -> Doc ann Source #

prettyList :: [Interval a] -> Doc ann Source #

ToData a => ToData (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromData a => FromData (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

UnsafeFromData a => UnsafeFromData (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => JoinSemiLattice (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(\/) :: Interval a -> Interval a -> Interval a Source #

Ord a => MeetSemiLattice (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(/\) :: Interval a -> Interval a -> Interval a Source #

Ord a => BoundedJoinSemiLattice (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

bottom :: Interval a Source #

Ord a => BoundedMeetSemiLattice (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

top :: Interval a Source #

Eq a => Eq (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: Interval a -> Interval a -> Bool Source #

Serialise a => Serialise (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Typeable DefaultUni Interval Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (Interval a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (Interval a) = D1 ('MetaData "Interval" "Plutus.V1.Ledger.Interval" "plutus-ledger-api-0.1.0.0-6XBf4FRRdNK1B20rg7kZGy" '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))))

data UpperBound a Source #

The upper bound of an interval.

Constructors

UpperBound (Extended a) Closure 

Instances

Instances details
Functor UpperBound Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

fmap :: (a -> b) -> UpperBound a -> UpperBound b Source #

(Typeable DefaultUni a, Lift DefaultUni (Extended a)) => Lift DefaultUni (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => Ord (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Show a => Show (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Generic (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Associated Types

type Rep (UpperBound a) :: Type -> Type Source #

Methods

from :: UpperBound a -> Rep (UpperBound a) x Source #

to :: Rep (UpperBound a) x -> UpperBound a Source #

Hashable a => Hashable (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

ToJSON a => ToJSON (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromJSON a => FromJSON (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

NFData a => NFData (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

rnf :: UpperBound a -> () Source #

Pretty a => Pretty (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

pretty :: UpperBound a -> Doc ann Source #

prettyList :: [UpperBound a] -> Doc ann Source #

ToData a => ToData (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromData a => FromData (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

UnsafeFromData a => UnsafeFromData (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => Ord (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: UpperBound a -> UpperBound a -> Bool Source #

Serialise a => Serialise (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Typeable DefaultUni UpperBound Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (UpperBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (UpperBound a) = D1 ('MetaData "UpperBound" "Plutus.V1.Ledger.Interval" "plutus-ledger-api-0.1.0.0-6XBf4FRRdNK1B20rg7kZGy" 'False) (C1 ('MetaCons "UpperBound" 'PrefixI 'False) (S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 (Extended a)) :*: S1 ('MetaSel ('Nothing :: Maybe Symbol) 'NoSourceUnpackedness 'NoSourceStrictness 'DecidedLazy) (Rec0 Closure)))

data LowerBound a Source #

The lower bound of an interval.

Constructors

LowerBound (Extended a) Closure 

Instances

Instances details
Functor LowerBound Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

fmap :: (a -> b) -> LowerBound a -> LowerBound b Source #

(Typeable DefaultUni a, Lift DefaultUni (Extended a)) => Lift DefaultUni (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => Ord (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Show a => Show (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Generic (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Associated Types

type Rep (LowerBound a) :: Type -> Type Source #

Methods

from :: LowerBound a -> Rep (LowerBound a) x Source #

to :: Rep (LowerBound a) x -> LowerBound a Source #

Hashable a => Hashable (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

ToJSON a => ToJSON (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromJSON a => FromJSON (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

NFData a => NFData (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

rnf :: LowerBound a -> () Source #

Pretty a => Pretty (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

pretty :: LowerBound a -> Doc ann Source #

prettyList :: [LowerBound a] -> Doc ann Source #

ToData a => ToData (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromData a => FromData (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

UnsafeFromData a => UnsafeFromData (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => Ord (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: LowerBound a -> LowerBound a -> Bool Source #

Serialise a => Serialise (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Typeable DefaultUni LowerBound Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (LowerBound a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (LowerBound a) = D1 ('MetaData "LowerBound" "Plutus.V1.Ledger.Interval" "plutus-ledger-api-0.1.0.0-6XBf4FRRdNK1B20rg7kZGy" '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)))

data Extended a Source #

A set extended with a positive and negative infinity.

Constructors

NegInf 
Finite a 
PosInf 

Instances

Instances details
Functor Extended Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

fmap :: (a -> b) -> Extended a -> Extended b Source #

(Typeable DefaultUni a, Lift DefaultUni a) => Lift DefaultUni (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: Extended a -> Extended a -> Bool Source #

(/=) :: Extended a -> Extended a -> Bool Source #

Ord a => Ord (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Show a => Show (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Generic (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Associated Types

type Rep (Extended a) :: Type -> Type Source #

Methods

from :: Extended a -> Rep (Extended a) x Source #

to :: Rep (Extended a) x -> Extended a Source #

Hashable a => Hashable (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

ToJSON a => ToJSON (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromJSON a => FromJSON (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

NFData a => NFData (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

rnf :: Extended a -> () Source #

Pretty a => Pretty (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

pretty :: Extended a -> Doc ann Source #

prettyList :: [Extended a] -> Doc ann Source #

ToData a => ToData (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

FromData a => FromData (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

UnsafeFromData a => UnsafeFromData (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Ord a => Ord (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Eq a => Eq (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Methods

(==) :: Extended a -> Extended a -> Bool Source #

Serialise a => Serialise (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

Typeable DefaultUni Extended Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (Extended a) Source # 
Instance details

Defined in Plutus.V1.Ledger.Interval

type Rep (Extended a) = D1 ('MetaData "Extended" "Plutus.V1.Ledger.Interval" "plutus-ledger-api-0.1.0.0-6XBf4FRRdNK1B20rg7kZGy" '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 Closure = Bool Source #

Whether a bound is inclusive or not.

member :: 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.

from :: a -> Interval a Source #

from a is an Interval that includes all values that are greater than or equal to a.

to :: a -> Interval a Source #

to a is an Interval that includes all values that are smaller than or equal to a.

always :: Interval a Source #

An Interval that covers every slot.

never :: Interval a Source #

An Interval that is empty.

hull :: Ord a => Interval a -> Interval a -> Interval a Source #

'hull a b' is the smallest interval containing a and b.

intersection :: 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.

contains :: Ord a => Interval a -> Interval a -> Bool Source #

a contains b is true if the Interval b is entirely contained in a. That is, a contains b if for every entry s, if member s b then member s a.

isEmpty :: (Enum a, Ord a) => Interval a -> Bool Source #

Check if an Interval is empty.

before :: Ord a => a -> Interval a -> Bool Source #

Check if a value is earlier than the beginning of an Interval.

after :: Ord a => a -> Interval a -> Bool Source #

Check if a value is later than the end of a Interval.