functor (X : Named_intf.S5->
  sig
    val typename_of_t :
      'a typename ->
      'b typename ->
      'c typename ->
      'd typename -> 'e typename -> ('a, 'b, 'c, 'd, 'e) X.t typename
  end