Module Stable_witness.Of_serializable1

Parameters

module Stable_format : T1
module M : T1

Signature

val of_serializable : ('a t -> 'a Stable_format.t t) -> ('a Stable_format.t -> 'a M.t) -> ('a M.t -> 'a Stable_format.t) -> 'a t -> 'a M.t t

This is the analogue of of_serializable for types with 1 type parameter, e.g. 'a M.t.

An example usage would look something like this:

let stable_witness (type a) : a Stable_witness.t -> a M.t Stable_witness.t =
  fun witness ->
  let module Stable_witness =
    Stable_witness.Of_serializable1 (Stable_format) (M)
  in
  Stable_witness.of_serializable
    Stable_format.stable_witness
    M.of_stable_format
    M.to_stable_format
    witness
;;