package coq-core

  1. Overview
  2. Docs
Legend:
Page
Library
Module
Module type
Parameter
Class
Class type
Source

Module Summary.Dyn

We provide safe projection from the summary to the types stored in it.

type 'a tag

Type of dynamic tags

type t =
  1. | Dyn : 'a tag * 'a -> t
    (*

    Type of dynamic values

    *)
val create : string -> 'a tag

create n returns a tag describing a type called n. create raises an exception if n is already registered. Type names are hashed, so create may raise even if no type with the exact same name was registered due to a collision.

val anonymous : int -> 'a tag

anonymous i returns a tag describing an i-th anonymous type. If anonymous is not used together with create, max_int anonymous types are available. anonymous raises an exception if i is already registered.

val eq : 'a tag -> 'b tag -> ('a, 'b) CSig.eq option

eq t1 t2 returns Some witness if t1 is the same as t2, None otherwise.

val repr : 'a tag -> string

repr tag returns the name of the type represented by tag.

val dump : unit -> (int * string) list

dump () returns a list of (tag, name) pairs for every type tag registered in this Dyn.Make instance.

type any =
  1. | Any : 'a tag -> any
    (*

    Type of boxed dynamic tags

    *)
val name : string -> any option

name n returns Some t where t is a boxed tag previously registered with create n, or None if there is no such tag.

module Map (Value : Dyn.ValueS) : Dyn.MapS with type 'a key = 'a tag and type 'a value = 'a Value.t

Map from type tags to values parameterized by the tag type

module HMap (V1 : Dyn.ValueS) (V2 : Dyn.ValueS) : sig ... end
module Easy : sig ... end
OCaml

Innovation. Community. Security.