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