Safe Haskell | None |
---|---|
Language | Haskell2010 |
Synopsis
-
class
JoinSemiLattice
a
where
- (\/) :: a -> a -> a
-
class
MeetSemiLattice
a
where
- (/\) :: a -> a -> a
- type Lattice a = ( JoinSemiLattice a, MeetSemiLattice a)
-
class
JoinSemiLattice
a =>
BoundedJoinSemiLattice
a
where
- bottom :: a
-
class
MeetSemiLattice
a =>
BoundedMeetSemiLattice
a
where
- top :: a
- type BoundedLattice a = ( BoundedJoinSemiLattice a, BoundedMeetSemiLattice a)
- newtype Join a = Join a
- newtype Meet a = Meet a
Documentation
class JoinSemiLattice a where Source #
A join semi-lattice, i.e. a partially ordered set equipped with a
binary operation
(\/)
.
Note that the mathematical definition would require an ordering constraint -
we omit that so we can define instances for e.g.
(->)
.
Instances
JoinSemiLattice Bool Source # | |
JoinSemiLattice b => JoinSemiLattice (a -> b) Source # | |
Defined in PlutusTx.Lattice |
|
( JoinSemiLattice a, JoinSemiLattice b) => JoinSemiLattice (a, b) Source # | |
Defined in PlutusTx.Lattice |
class MeetSemiLattice a where Source #
A meet semi-lattice, i.e. a partially ordered set equipped with a
binary operation
(/\)
.
Note that the mathematical definition would require an ordering constraint -
we omit that so we can define instances for e.g.
(->)
.
Instances
MeetSemiLattice Bool Source # | |
MeetSemiLattice b => MeetSemiLattice (a -> b) Source # | |
Defined in PlutusTx.Lattice |
|
( MeetSemiLattice a, MeetSemiLattice b) => MeetSemiLattice (a, b) Source # | |
Defined in PlutusTx.Lattice |
type Lattice a = ( JoinSemiLattice a, MeetSemiLattice a) Source #
A lattice.
class JoinSemiLattice a => BoundedJoinSemiLattice a where Source #
A bounded join semi-lattice, i.e. a join semi-lattice augmented with
a distinguished element
bottom
which is the unit of
(\/)
.
Instances
BoundedJoinSemiLattice Bool Source # | |
Defined in PlutusTx.Lattice |
|
BoundedJoinSemiLattice b => BoundedJoinSemiLattice (a -> b) Source # | |
Defined in PlutusTx.Lattice |
|
( BoundedJoinSemiLattice a, BoundedJoinSemiLattice b) => BoundedJoinSemiLattice (a, b) Source # | |
Defined in PlutusTx.Lattice |
class MeetSemiLattice a => BoundedMeetSemiLattice a where Source #
A bounded meet semi-lattice, i.e. a meet semi-lattice augmented with
a distinguished element
top
which is the unit of
(/\)
.
Instances
BoundedMeetSemiLattice Bool Source # | |
Defined in PlutusTx.Lattice |
|
BoundedMeetSemiLattice b => BoundedMeetSemiLattice (a -> b) Source # | |
Defined in PlutusTx.Lattice |
|
( BoundedMeetSemiLattice a, BoundedMeetSemiLattice b) => BoundedMeetSemiLattice (a, b) Source # | |
Defined in PlutusTx.Lattice |
type BoundedLattice a = ( BoundedJoinSemiLattice a, BoundedMeetSemiLattice a) Source #
A bounded lattice.
Join a |
Meet a |