# Module Std_kernel.Binable

    module Binable: Binable

    type bigstring = (char, Bigarray.int8_unsigned_elt, Bigarray.c_layout) Bigarray.Array1.t

    module type S = Bin_prot.Binable.S

    module type S1 = Bin_prot.Binable.S1

    module type S2 = Bin_prot.Binable.S2

`Of_binable*` functors are for when you want the binary representation of one type to be the same as that for some other isomorphic type.

    module Of_binable: functor (Binable : S) -> functor (M : sig
    type t

    val to_binable : t -> Binable.t
    val of_binable : Binable.t -> tend) -> S  with type t := M.t

    module Of_binable1: functor (Binable : S1) -> functor (M : sig
    type 'a t

    val to_binable : 'a t -> 'a Binable.t
    val of_binable : 'a Binable.t -> 'a tend) -> S1  with type 'a t := 'a M.t

    module Of_binable2: functor (Binable : S2) -> functor (M : sig
    type ('a, 'b) t

    val to_binable : ('a, 'b) t -> ('a, 'b) Binable.t
    val of_binable : ('a, 'b) Binable.t -> ('a, 'b) tend) -> S2  with type ('a, 'b) t := ('a, 'b) M.t

    module Of_stringable: functor (M : Stringable.S) -> S  with type t := M.t

    type 'a m = (module Binable.S with type t = 'a)

    val of_bigstring : 'a m -> bigstring -> 'a

    val to_bigstring : ?prefix_with_length:bool -> 'a m -> 'a -> bigstring

    val of_string : 'a m -> string -> 'a

    val to_string : 'a m -> 'a -> string