Module Meta.Model

module Type_id : Type_id
type 'a t = {
  1. default : 'a;
  2. equal : 'a -> 'a -> bool;
  3. type_id : 'a Type_id.t;
  4. sexp_of : 'a -> Core.Sexp.t;
}
module Hidden : sig ... end
val unit : unit t
val both : 'a t -> 'b t -> ('a * 'b) t
val map : ('k, 'cmp) Core.Comparator.Module.t -> 'k Core.Type_equal.Id.t -> 'cmp Core.Type_equal.Id.t -> 'a t -> ('k, 'a, 'cmp) Core.Map.t t
val map_on : ('k, 'cmp) Core.Comparator.Module.t -> ('k_io, 'cmp_io) Core.Comparator.Module.t -> 'k Core.Type_equal.Id.t -> 'k_io Core.Type_equal.Id.t -> 'cmp Core.Type_equal.Id.t -> 'a t -> ('k, 'k_io * 'a, 'cmp) Core.Map.t t
val of_module : sexp_of_model:('a -> Core.Sexp.t) -> equal:('a -> 'a -> bool) option -> default:'a -> name:string -> 'a t