functor (X : Named_intf.S1) ->
  sig val typename_of_t : 'a typename -> 'a X.t typename end