Module Amount.Signed

type t = ( t, Sgn.t ) Signed_poly.t
val to_yojson : t -> Yojson.Safe.t
val of_yojson : Yojson.Safe.t -> t Ppx_deriving_yojson_runtime.error_or
include Ppx_sexp_conv_lib.Sexpable.S with type t := t
val t_of_sexp : Sexplib0__.Sexp.t -> t
val sexp_of_t : t -> Sexplib0__.Sexp.t
val hash_fold_t : Ppx_hash_lib.Std.Hash.state -> t -> Ppx_hash_lib.Std.Hash.state
val hash : t -> Ppx_hash_lib.Std.Hash.hash_value
val compare : t -> t -> int
val equal : t -> t -> bool
val gen : t Core_kernel.Quickcheck.Generator.t
val create : magnitude:'magnitude -> sgn:'sgn -> ( 'magnitude, 'sgn ) Signed_poly.t
val sgn : t -> Sgn.t
val magnitude : t -> t
val zero : t
val is_zero : t -> bool
val is_positive : t -> bool
val is_negative : t -> bool
val to_input_legacy : t -> ( _, bool ) Random_oracle.Legacy.Input.t
val add : t -> t -> t option
val add_flagged : t -> t -> t * [ `Overflow of bool ]
val (+) : t -> t -> t option
val negate : t -> t
val of_unsigned : t -> t
val to_fee : t -> Fee.Signed.t
val of_fee : Fee.Signed.t -> t
type var
val create_var : magnitude:var -> sgn:Sgn.var -> var
module Checked : sig ... end