functor
  (T : sig type a val type_rep : Deriving_Typeable.TypeRep.t Lazy.t end->
  sig
    type a = T.a
    val type_rep : TypeRep.t Lazy.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