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