Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
val verbose : int ref
type compo_type =
| Name of string * compo_type list
| Abstract of string
| Fun of compo_type list * compo_type
| Prod of compo_type list
A type for ocaml type
A type for named function
val flatten_prod : compo_type list -> compo_type list
val ano_func : func -> compo_type
val deano_func : string -> compo_type -> func
type sum_type_def = (string * compo_type option * float option) list
type sum_type = (string * string list) * sum_type_def
val hide : 'a -> compo_type -> hidden_type
val reveal : hidden_type -> compo_type -> 'a
type recdefprint = (compo_type * string) list
type poly = ((compo_type list * int) * float) list
type poly_assoc = (compo_type * poly) list
type named_type = {
identifier : string;
boltz_identifier : string;
is_simple : bool;
arguments : int;
get_equ : (compo_type -> poly_assoc -> poly_assoc) ->
poly_assoc ->
compo_type ->
poly_assoc;
gen_fun : Random.State.t ->
int ->
(Random.State.t -> int -> compo_type -> float -> hidden_type * int) ->
(compo_type -> gen_function) ->
compo_type ->
float ->
hidden_type * int;
print : (compo_type -> Format.formatter -> hidden_type -> unit) ->
compo_type ->
Format.formatter ->
hidden_type ->
unit;
string_of_named : recdefprint ->
(recdefprint -> compo_type -> string) ->
compo_type ->
string;
boltzman_fun : (compo_type -> gen_function) -> compo_type -> gen_function;
}
val find_type : string -> named_type
val rewrite : compo_type -> compo_type
val add_type_to_lib : ?rename:string -> named_type -> unit
val pp_compo : ?use_boltz_id:bool -> Format.formatter -> compo_type -> unit
val pp_func : ?use_boltz_id:bool -> Format.formatter -> func -> unit
val pp_sum : Format.formatter -> sum_type -> unit
val instantiate : string -> compo_type -> compo_type -> compo_type