package octez-proto-libs

  1. Overview
  2. Docs
Octez protocol libraries

Install

Dune Dependency

Authors

Maintainers

Sources

octez-19.0.tar.gz
sha256=c6df840ebbf115e454db949028c595bec558a59a66cade73b52a6d099d6fa4d4
sha512=d8aee903b9fe130d73176bc8ec38b78c9ff65317da3cb4f3415f09af0c625b4384e7498201fdb61aa39086a7d5d409d0ab3423f9bc3ab989a680cf444a79bc13

doc/octez-proto-libs.protocol-environment/Tezos_protocol_environment/V4/Make/Equality_witness/index.html

Module Make.Equality_witnessSource

This module provides support for type equalities and runtime type identifiers.

For two types a and b, (a, b) eq is a witness that a = b. This is a standard generalized algebraic datatype on top of which type-level programming techniques can be implemented.

Given a type a, an inhabitant of a t is a dynamic identifier for a. Identifiers can be compared for equality. They are also equipped with a hash function.

WARNING: the hash function changes at every run. Therefore, the result of the hash function should never be stored.

Notice that dynamic identifiers are not unique: two identifiers for a can have distinct hash and can be physically distinct. Hence, only eq can decide if two type identifiers correspond to the same type.

Sourcetype (_, _) eq =
  1. | Refl : ('a, 'a) eq

A proof witness that two types are equal.

Sourcetype 'a t

A dynamic representation for 'a.

Sourceval make : unit -> 'a t

make () is a dynamic representation for 'a. A fresh identifier is returned each time make () is evaluated.

Sourceval eq : 'a t -> 'b t -> ('a, 'b) eq option

eq ida idb returns a proof that a = b if ida and idb identify the same type.

Sourceval hash : 'a t -> int

hash id returns a hash for id.

OCaml

Innovation. Community. Security.