module Parameter_category: sig
.. end
Category for parameter collections.
A category groups together a set of possible values of a given type for some
parameters. It may be created once and used several times.
type 'a
t
\tau t
is the type of a category for the type \tau.
type 'a
accessor = <
|
fold : 'acc. ('a -> 'acc -> 'acc) -> 'acc -> 'acc ; |
|
mem : 'a -> bool ; |
>
Type explaining how to manipulate the elements of the category.
val create : string ->
'a Type.t ->
register:bool ->
State.t list -> 'a accessor -> 'a t
create name ty ~register states access
creates a category of the given
name for the given type. No category with such a name for the same type must
be already registered. If register
, save the category for further re-use.
states
is a list of states which the category is based upon. access
is
how to manipulate this category.
val copy_and_rename : string -> register:bool -> 'a t -> 'a t
copy_and_rename s ~register c
renames the category c
into s
and
returns the new built category which is registered according to
register
.
val use : State.t -> 'a t -> unit
use s c
indicates that the state s
depends on the category c
.
val get_name : 'a t -> string
Name of the category.
val get_fold : 'a t -> ('a -> 'acc -> 'acc) -> 'acc -> 'acc
Fold over the elements of the given category.
val get_mem : 'a t -> 'a -> bool
Is the given element present in the category?