sig
  type ('a, 'b, 'c) t
  val typename_of_t :
    'Typename.typename ->
    'Typename.typename ->
    'Typename.typename -> ('a, 'b, 'c) Typename.S3.t Typename.typename
end