functor (T : sig val name : string end) ->
  sig type t val ty : Type.Abstract.t Type.ty end