Safe Haskell | None |
---|---|
Language | Haskell2010 |
Cardano.Ledger.Val
Description
This module defines a generalised notion of a "value" - that is, something with which we may quantify a transaction output.
Synopsis
-
class
(
Abelian
t,
Eq
t) =>
Val
t
where
- zero :: t
- (<+>) :: t -> t -> t
- (<×>) :: Integral i => i -> t -> t
- (<->) :: t -> t -> t
- isZero :: t -> Bool
- coin :: t -> Coin
- inject :: Coin -> t
- modifyCoin :: ( Coin -> Coin ) -> t -> t
- size :: t -> Integer
- pointwise :: ( Integer -> Integer -> Bool ) -> t -> t -> Bool
- isAdaOnly :: t -> Bool
- isAdaOnlyCompact :: CompactForm t -> Bool
- injectCompact :: CompactForm Coin -> CompactForm t
- scale :: ( Val t, Integral i) => i -> t -> t
- invert :: Val t => t -> t
- sumVal :: ( Foldable t, Val v) => t v -> v
- adaOnly :: Val v => v -> Bool
-
class
DecodeNonNegative
v
where
- decodeNonNegative :: Decoder s v
-
class
DecodeMint
v
where
- decodeMint :: Decoder s v
-
class
EncodeMint
v
where
- encodeMint :: v -> Encoding
Documentation
class ( Abelian t, Eq t) => Val t where Source #
Minimal complete definition
(<×>) , coin , inject , modifyCoin , size , pointwise , isAdaOnly , isAdaOnlyCompact , injectCompact
Methods
the value with nothing in it
(<+>) :: t -> t -> t infixl 6 Source #
add two value
(<×>) :: Integral i => i -> t -> t infixl 7 Source #
scale a value by an Integral constant
(<->) :: t -> t -> t infixl 6 Source #
subtract two values
Is the argument zero?
Get the ADA present in the value (since ADA is our "blessed" currency)
Create a value containing only this amount of ADA
modifyCoin :: ( Coin -> Coin ) -> t -> t Source #
modify the blessed Coin part of t
pointwise :: ( Integer -> Integer -> Bool ) -> t -> t -> Bool Source #
used to compare values pointwise. Rather than using: (v1 <= v2) use: pointwise (<=) v1 v2
| If a quantity is stored in only one of
v1
or
v2
, we use 0 for the missing quantity.
isAdaOnly :: t -> Bool Source #
Check if value contains only ADA. Must hold property:
inject (coin v) == v
isAdaOnlyCompact :: CompactForm t -> Bool Source #
injectCompact :: CompactForm Coin -> CompactForm t Source #
Instances
class DecodeNonNegative v where Source #
Methods
decodeNonNegative :: Decoder s v Source #
Instances
DecodeNonNegative Coin Source # | |
Defined in Cardano.Ledger.Val Methods decodeNonNegative :: Decoder s Coin Source # |
|
( DecodeNonNegative a, Compactible a, Show a) => DecodeNonNegative ( CompactForm a) Source # | |
Defined in Cardano.Ledger.Val Methods decodeNonNegative :: Decoder s ( CompactForm a) Source # |
class DecodeMint v where Source #
Methods
decodeMint :: Decoder s v Source #
Instances
DecodeMint Coin Source # | |
Defined in Cardano.Ledger.Val Methods decodeMint :: Decoder s Coin Source # |
class EncodeMint v where Source #
Methods
encodeMint :: v -> Encoding Source #
Instances
EncodeMint Coin Source # | |
Defined in Cardano.Ledger.Val Methods encodeMint :: Coin -> Encoding Source # |