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->
            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