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