sig
module TypeRep :
sig
type t
type delayed = unit -> Typeable.TypeRep.t
val compare : Typeable.TypeRep.t -> Typeable.TypeRep.t -> int
val eq : Typeable.TypeRep.t -> Typeable.TypeRep.t -> bool
val mkFresh :
string -> Typeable.TypeRep.delayed list -> Typeable.TypeRep.delayed
val mkTuple : Typeable.TypeRep.delayed list -> Typeable.TypeRep.delayed
val mkPolyv :
(string * Typeable.TypeRep.delayed option) list ->
Typeable.TypeRep.delayed list -> Typeable.TypeRep.delayed
end
exception CastFailure of string
type dynamic
val tagOf : Typeable.dynamic -> Typeable.TypeRep.t
module type Typeable =
sig
type a
val type_rep : unit -> Typeable.TypeRep.t
val has_type : Typeable.dynamic -> bool
val cast : Typeable.dynamic -> Typeable.Typeable.a option
val throwing_cast : Typeable.dynamic -> Typeable.Typeable.a
val make_dynamic : Typeable.Typeable.a -> Typeable.dynamic
val mk : Typeable.Typeable.a -> Typeable.dynamic
end
module Defaults :
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
module Typeable_list :
functor (A : Typeable) ->
sig
type a = A.a list
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
module Typeable_option :
functor (A : Typeable) ->
sig
type a = A.a option
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
module Typeable_ref :
functor (A : Typeable) ->
sig
type a = A.a ref
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
module Typeable_unit :
sig
type a = unit
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
module Typeable_int :
sig
type a = int
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
module Typeable_num :
sig
type a = Num.num
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
module Typeable_float :
sig
type a = float
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
module Typeable_bool :
sig
type a = bool
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
module Typeable_string :
sig
type a = string
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
module Typeable_char :
sig
type a = char
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
end