`functor
(S : sig
type a
module Typeable :
sig
type a = a
val type_rep : Deriving_Typeable.TypeRep.t Lazy.t
val has_type : Deriving_Typeable.dynamic -> bool
val cast : Deriving_Typeable.dynamic -> a option
val throwing_cast : Deriving_Typeable.dynamic -> a
val make_dynamic : a -> Deriving_Typeable.dynamic
val mk : a -> Deriving_Typeable.dynamic
end
module Eq : sig type a = a val eq : a -> a -> bool end
val pickle :
Deriving_Pickle.Defaults.a ->
Deriving_Pickle.id Deriving_Pickle.Write.m
val unpickle :
Deriving_Pickle.id ->
Deriving_Pickle.Defaults.a Deriving_Pickle.Read.m
end) ->
sig
type a = S.a
module Typeable :
sig
type a = a
val type_rep : Deriving_Typeable.TypeRep.t Lazy.t
val has_type : Deriving_Typeable.dynamic -> bool
val cast : Deriving_Typeable.dynamic -> a option
val throwing_cast : Deriving_Typeable.dynamic -> a
val make_dynamic : a -> Deriving_Typeable.dynamic
val mk : a -> Deriving_Typeable.dynamic
end
module Eq : sig type a = a val eq : a -> a -> bool end
val pickle : a -> id Write.m
val unpickle : id -> a Read.m
val to_buffer : Buffer.t -> a -> unit
val to_string : a -> string
val to_channel : out_channel -> a -> unit
val from_stream : char Stream.t -> a
val from_string : string -> a
val from_channel : in_channel -> a
end`