sig
  type ('a, 'b, 'c, 'd) t
  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) Typerepable.S4.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) Typerepable.S4.t Typename.t
end