Module Dose_common.Util Source  Source val  uuid : unit ->   stringreturn a unique identifier based on random numbers
Source val  list_unique : 'a  list-> 'a  listreturn a list of unique elements. This algorithm runs in O(n) but is not stable . elements are returned in reverse order
Source val  memo : ('a  -> 'b )  -> 'a  -> 'b A generic memoization function. To use with care as it allocates an hashtbl storing all results that will be released only on exit
Source val  timestamp : unit ->   stringDebug, ProgressBars, Timers and Loggers
Debug, Info and Warning messages are printed immediately on stderr. * Info messages are enabled per default. Debug and Warning messages * must be enabled explicitely
Ex : To use the Message framework, you should declare three functions * at the begin of each module as:
let debug fmt = Util.make_debug "MyModuleLabel" fmt let info fmt = Util.make_info "MyModuleLabel" fmt let warning fmt = Util.make_warning "MyModuleLabel" fmt
and then use these function as
debug "this is a message string %s" "a string"
To enable this handle, from the main program use the function
Debug.enable "MyModuleLabel"
include Util.Logging(struct let label = "label" end) ;;
ProgressBars are printed immediately on stderr. * To be used, the **must** be created outside the functions where * they are used. * They can enabled or disabled (default)
Timers are printed all at once by the dump function on stderr. * They can enabled or disabled (default)
Source val  range : int ->   int ->   int list Source val  string_of_list : 
  ?delim :(string * string)  -> ?sep :string -> ('a  ->   -> 'a  list-> associate a sat solver variable to a package id
intprojection n integer projection of size n