Module Versioned_typed_tcp.Datumable_of_binable

module Datumable_of_binable: sig .. end
Helpers to make your types Datumable if they are binable. Works with up to 5 versions (easily extensible to more)

module type T = sig .. end
module type T_bin = sig .. end
module V: 
functor (V : T) ->
functor (T : T) -> sig .. end
module Make_datumable5: 
functor (Versions : Versioned_typed_tcp.Versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V2 : T_bin) ->
functor (V3 : T_bin) ->
functor (V4 : T_bin) ->
functor (V5 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) ->
functor (V2_cvt : V(V2)(T).S) ->
functor (V3_cvt : V(V3)(T).S) ->
functor (V4_cvt : V(V4)(T).S) ->
functor (V5_cvt : V(V5)(T).S) -> sig .. end
module type Pre_versions = sig .. end
module Five_versions: 
functor (Versions : Pre_versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V2 : T_bin) ->
functor (V3 : T_bin) ->
functor (V4 : T_bin) ->
functor (V5 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) ->
functor (V2_cvt : V(V2)(T).S) ->
functor (V3_cvt : V(V3)(T).S) ->
functor (V4_cvt : V(V4)(T).S) ->
functor (V5_cvt : V(V5)(T).S) -> Make_datumable5(sig
include Versions
val test_version : Versioned_typed_tcp.Version.t
end)(T)(V1)(V2)(V3)(V4)(V5)(V1_cvt)(V2_cvt)(V3_cvt)(V4_cvt)(V5_cvt)
module Four_versions: 
functor (Versions : Pre_versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V2 : T_bin) ->
functor (V3 : T_bin) ->
functor (V4 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) ->
functor (V2_cvt : V(V2)(T).S) ->
functor (V3_cvt : V(V3)(T).S) ->
functor (V4_cvt : V(V4)(T).S) -> Make_datumable5(sig
include Versions
val test_version : Versioned_typed_tcp.Version.t
end)(T)(V1)(V2)(V3)(V4)(V4)(V1_cvt)(V2_cvt)(V3_cvt)(V4_cvt)(V4_cvt)
module Three_versions: 
functor (Versions : Pre_versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V2 : T_bin) ->
functor (V3 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) ->
functor (V2_cvt : V(V2)(T).S) ->
functor (V3_cvt : V(V3)(T).S) -> Make_datumable5(sig
include Versions
val test_version : Versioned_typed_tcp.Version.t
end)(T)(V1)(V2)(V3)(V3)(V3)(V1_cvt)(V2_cvt)(V3_cvt)(V3_cvt)(V3_cvt)
module Two_versions: 
functor (Versions : Pre_versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V2 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) ->
functor (V2_cvt : V(V2)(T).S) -> Make_datumable5(sig
include Versions
val test_version : Versioned_typed_tcp.Version.t
end)(T)(V1)(V2)(V2)(V2)(V2)(V1_cvt)(V2_cvt)(V2_cvt)(V2_cvt)(V2_cvt)
module One_version: 
functor (Versions : Pre_versions) ->
functor (T : T) ->
functor (V1 : T_bin) ->
functor (V1_cvt : V(V1)(T).S) -> Make_datumable5(sig
include Versions
val test_version : Versioned_typed_tcp.Version.t
end)(T)(V1)(V1)(V1)(V1)(V1)(V1_cvt)(V1_cvt)(V1_cvt)(V1_cvt)(V1_cvt)