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