| Safe Haskell | Safe-Inferred |
|---|---|
| Language | Haskell2010 |
PlutusTx.Eq
Contents
Documentation
The Eq class defines equality (==).
(/=) deliberately omitted, to make this a one-method class which has a simpler representation
Instances
| Eq Ordering # | |
| Eq BuiltinBLS12_381_G1_Element # | |
Defined in PlutusTx.Eq.Class Methods (==) :: BuiltinBLS12_381_G1_Element -> BuiltinBLS12_381_G1_Element -> Bool # | |
| Eq BuiltinBLS12_381_G2_Element # | |
Defined in PlutusTx.Eq.Class Methods (==) :: BuiltinBLS12_381_G2_Element -> BuiltinBLS12_381_G2_Element -> Bool # | |
| Eq BuiltinByteString # | |
Defined in PlutusTx.Eq.Class Methods (==) :: BuiltinByteString -> BuiltinByteString -> Bool # | |
| Eq BuiltinData # | |
Defined in PlutusTx.Eq.Class Methods (==) :: BuiltinData -> BuiltinData -> Bool # | |
| Eq BuiltinString # | |
Defined in PlutusTx.Eq.Class Methods (==) :: BuiltinString -> BuiltinString -> Bool # | |
| Eq Rational # | |
| Eq Integer # | |
| Eq () # | |
Defined in PlutusTx.Eq | |
| Eq Bool # | |
| Eq (List a) # | |
| Eq a => Eq (Maybe a) # | |
| Eq a => Eq [a] # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b) => Eq (Either a b) # | |
| (Eq a, Eq b) => Eq (These a b) # | |
| (Eq a, Eq b) => Eq (a, b) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c) => Eq (a, b, c) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y, Eq z) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) # | |
Defined in PlutusTx.Eq | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y, Eq z, Eq t26) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26) # | |
Defined in PlutusTx.Eq | |
Derive a Plinth Eq instance for a datatype or newtype.
Similar to Haskell's deriving stock Eq, this generates structural equality
with short-circuit evaluation and INLINEABLE pragmas for optimal on-chain performance.
Usage:
data MyType = Con1 Integer | Con2 Bool deriveEq ''MyType
Generated code:
- Pattern-matching clauses for each constructor
- Short-circuit evaluation (stops at first inequality)
INLINEABLEpragma for cross-module optimization- Proper handling of phantom type parameters
Supported types:
- Regular datatypes with any number of constructors
- Newtypes
- Types with phantom type parameters
- Types with strict or lazy fields
- Records
- Self-recursive types
- Mutually recursive types (when all types in the group have Eq instances)
Unsupported:
- GADTs (may produce type errors)
- Existentially quantified types
- Type families (not tested)
See Eq for the class definition.
Orphan instances
| Eq Ordering # | |
| Eq () # | |
| Eq Bool # | |
| Eq a => Eq (Maybe a) # | |
| Eq a => Eq [a] # | |
| (Eq a, Eq b) => Eq (Either a b) # | |
| (Eq a, Eq b) => Eq (a, b) # | |
| (Eq a, Eq b, Eq c) => Eq (a, b, c) # | |
| (Eq a, Eq b, Eq c, Eq d) => Eq (a, b, c, d) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e) => Eq (a, b, c, d, e) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f) => Eq (a, b, c, d, e, f) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g) => Eq (a, b, c, d, e, f, g) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h) => Eq (a, b, c, d, e, f, g, h) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i) => Eq (a, b, c, d, e, f, g, h, i) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j) => Eq (a, b, c, d, e, f, g, h, i, j) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k) => Eq (a, b, c, d, e, f, g, h, i, j, k) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l) => Eq (a, b, c, d, e, f, g, h, i, j, k, l) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y, Eq z) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z) # | |
| (Eq a, Eq b, Eq c, Eq d, Eq e, Eq f, Eq g, Eq h, Eq i, Eq j, Eq k, Eq l, Eq m, Eq n, Eq o, Eq p, Eq q, Eq r, Eq s, Eq t, Eq u, Eq v, Eq w, Eq x, Eq y, Eq z, Eq t26) => Eq (a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, t26) # | |