functor (T : sig type a val type_rep : unit -> Typeable.TypeRep.t end->
  sig
    type a = T.a
    val type_rep : unit -> TypeRep.t
    val has_type : dynamic -> bool
    val cast : dynamic -> a option
    val throwing_cast : dynamic -> a
    val make_dynamic : a -> dynamic
    val mk : a -> dynamic
  end