functor (X : sig type 'a t end->
  sig
    module type S0 =
      sig
        type t
        val typerep_of_t : t Std_internal.Typerep.t
        val typename_of_t : t Typename.t
        val compute : Type_generic_intf.M.S0.t X.t
      end
    module type S1 =
      sig
        type 'a t
        val typerep_of_t :
          'Std_internal.Typerep.t -> 'a t Std_internal.Typerep.t
        val typename_of_t : 'Typename.t -> 'a t Typename.t
        val compute : 'X.t -> 'Type_generic_intf.M.S1.t X.t
      end
    module type S2 =
      sig
        type ('a, 'b) t
        val typerep_of_t :
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t -> ('a, 'b) t Std_internal.Typerep.t
        val typename_of_t :
          'Typename.t -> 'Typename.t -> ('a, 'b) t Typename.t
        val compute :
          'X.t -> 'X.t -> ('a, 'b) Type_generic_intf.M.S2.t X.t
      end
    module type S3 =
      sig
        type ('a, 'b, 'c) t
        val typerep_of_t :
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t -> ('a, 'b, 'c) t Std_internal.Typerep.t
        val typename_of_t :
          'Typename.t ->
          'Typename.t -> 'Typename.t -> ('a, 'b, 'c) t Typename.t
        val compute :
          'X.t ->
          'X.t -> 'X.t -> ('a, 'b, 'c) Type_generic_intf.M.S3.t X.t
      end
    module type S4 =
      sig
        type ('a, 'b, 'c, 'd) t
        val typerep_of_t :
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          ('a, 'b, 'c, 'd) t Std_internal.Typerep.t
        val typename_of_t :
          'Typename.t ->
          'Typename.t ->
          'Typename.t -> 'Typename.t -> ('a, 'b, 'c, 'd) t Typename.t
        val compute :
          'X.t ->
          'X.t ->
          'X.t -> 'X.t -> ('a, 'b, 'c, 'd) Type_generic_intf.M.S4.t X.t
      end
    module type S5 =
      sig
        type ('a, 'b, 'c, 'd, 'e) t
        val typerep_of_t :
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          'Std_internal.Typerep.t ->
          ('a, 'b, 'c, 'd, 'e) t Std_internal.Typerep.t
        val typename_of_t :
          'Typename.t ->
          'Typename.t ->
          'Typename.t ->
          'Typename.t -> 'Typename.t -> ('a, 'b, 'c, 'd, 'e) t Typename.t
        val compute :
          'X.t ->
          'X.t ->
          'X.t ->
          'X.t ->
          'X.t -> ('a, 'b, 'c, 'd, 'e) Type_generic_intf.M.S5.t X.t
      end
  end