sig
  module Make0 :
    functor (X : Named_intf.S0) ->
      sig
        val typerep_of_t : X.t Std_internal.Typerep.t
        val typename_of_t : X.t Typename.t
      end
  module Make1 :
    functor (X : Named_intf.S1) ->
      sig
        val typerep_of_t :
          'a Std_internal.Typerep.t -> 'a X.t Std_internal.Typerep.t
        val typename_of_t : 'a Typename.t -> 'a X.t Typename.t
      end
  module Make2 :
    functor (X : Named_intf.S2) ->
      sig
        val typerep_of_t :
          'a Std_internal.Typerep.t ->
          'b Std_internal.Typerep.t -> ('a, 'b) X.t Std_internal.Typerep.t
        val typename_of_t :
          'a Typename.t -> 'b Typename.t -> ('a, 'b) X.t Typename.t
      end
  module Make3 :
    functor (X : Named_intf.S3) ->
      sig
        val typerep_of_t :
          'a Std_internal.Typerep.t ->
          'b Std_internal.Typerep.t ->
          'c Std_internal.Typerep.t ->
          ('a, 'b, 'c) X.t Std_internal.Typerep.t
        val typename_of_t :
          'a Typename.t ->
          'b Typename.t -> 'c Typename.t -> ('a, 'b, 'c) X.t Typename.t
      end
  module Make4 :
    functor (X : Named_intf.S4) ->
      sig
        val typerep_of_t :
          'a Std_internal.Typerep.t ->
          'b Std_internal.Typerep.t ->
          'c Std_internal.Typerep.t ->
          'd Std_internal.Typerep.t ->
          ('a, 'b, 'c, 'd) X.t Std_internal.Typerep.t
        val typename_of_t :
          'a Typename.t ->
          'b Typename.t ->
          'c Typename.t -> 'd Typename.t -> ('a, 'b, 'c, 'd) X.t Typename.t
      end
  module Make5 :
    functor (X : Named_intf.S5) ->
      sig
        val typerep_of_t :
          'a Std_internal.Typerep.t ->
          'b Std_internal.Typerep.t ->
          'c Std_internal.Typerep.t ->
          'd Std_internal.Typerep.t ->
          'e Std_internal.Typerep.t ->
          ('a, 'b, 'c, 'd, 'e) X.t Std_internal.Typerep.t
        val typename_of_t :
          'a Typename.t ->
          'b Typename.t ->
          'c Typename.t ->
          'd Typename.t ->
          'e Typename.t -> ('a, 'b, 'c, 'd, 'e) X.t Typename.t
      end
end