functor (Versions : Pre_versions) ->
  functor (T : T) ->
    functor (V1 : T_bin) ->
      functor (V1_cvt : V(V1)(T).S) ->
        sig
          type datum = T.t
          val low_version : Version.t
          val prod_version : Version.t
          val test_version : Version.t
          val lookup_marshal_fun :
            Version.t -> (datum marshal_fun, exn) Core.Std.Result.t
          val lookup_unmarshal_fun :
            Version.t -> (datum unmarshal_fun, exn) Core.Std.Result.t
        end