cardano-ledger-core-0.1.0.0: Core components of Cardano ledgers from the Shelley release on.
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

Documentation

class ( Abelian t, Eq t) => Val t where Source #

Methods

zero :: t Source #

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

isZero :: t -> Bool Source #

Is the argument zero?

coin :: t -> Coin Source #

Get the ADA present in the value (since ADA is our "blessed" currency)

inject :: Coin -> t Source #

Create a value containing only this amount of ADA

modifyCoin :: ( Coin -> Coin ) -> t -> t Source #

modify the blessed Coin part of t

size :: t -> Integer Source #

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 #

scale :: ( Val t, Integral i) => i -> t -> t Source #

adaOnly :: Val v => v -> Bool Source #

Deprecated: In favor of isAdaOnly