Liquidsoap_lang.Typetype custom = Type_base.customtype custom_handler = Type_base.custom_handler = {typ : custom;custom_name : string;copy_with : (t -> t) -> custom -> custom;occur_check : (t -> unit) -> custom -> unit;filter_vars : (Type_base.var list -> t -> Type_base.var list) ->
Type_base.var list ->
custom ->
Type_base.var list;repr : (Type_base.var list -> t -> Type_base.constr Type_base.R.t) ->
Type_base.var list ->
custom ->
Type_base.constr Type_base.R.t;subtype : (t -> t -> unit) -> custom -> custom -> unit;sup : (t -> t -> t) -> custom -> custom -> custom;to_string : custom -> string;}type descr = Type_base.descr = | String| Int| Float| Bool| Never| Custom of custom_handler| Constr of Type_base.constructed| Getter of ta getter: something that is either a t or () -> t
*)| List of Type_base.repr_t| Tuple of t list| Nullable of tsomething that is either t or null
*)| Meth of Type_base.meth * tt with a method added
*)| Arrow of t Type_base.argument list * ta function
*)| Var of var_ta type variable
*)type constr = Type_base.constr = {constr_descr : string;univ_descr : string option;satisfied : subtype:(t -> t -> unit) -> satisfies:(t -> unit) -> t -> unit;}module Constraints = Type_base.Constraintsval string_of_constr : constr -> stringval record_constr : constrval num_constr : constrval ord_constr : constrmodule R = Type_base.Rexception Exists of Pos.Option.t * stringval unit : descrmodule Var = Type_base.Varmodule Vars = Type_base.Varsmodule Fresh : sig ... endGenerate fresh types from existing types.
val has_meth : t -> string -> boolinvoke is used to raise proper exception in Typechecking.
val mk_invariant : t -> unitval string_of_scheme : scheme -> stringval is_fun : t -> boolval is_source : t -> boolmodule Custom = Type_customval register_type : string -> (unit -> t) -> unitval find_opt_typ : string -> (unit -> t) option