src/Tools/Metis/src/Useful.sig
changeset 25430 372d6749f00e
parent 23510 4521fead5609
child 39353 7f11d833d65b
equal deleted inserted replaced
25429:9e14fbd43e6b 25430:372d6749f00e
    24 (* Tracing.                                                                  *)
    24 (* Tracing.                                                                  *)
    25 (* ------------------------------------------------------------------------- *)
    25 (* ------------------------------------------------------------------------- *)
    26 
    26 
    27 val tracePrint : (string -> unit) ref
    27 val tracePrint : (string -> unit) ref
    28 
    28 
    29 val maxTraceLevel : int ref
       
    30 
       
    31 val traceLevel : int ref  (* in the set {0, ..., maxTraceLevel} *)
       
    32 
       
    33 val traceAlign : {module : string, alignment : int -> int option} list ref
       
    34 
       
    35 val tracing : {module : string, level : int} -> bool
       
    36 
       
    37 val trace : string -> unit
    29 val trace : string -> unit
    38 
    30 
    39 (* ------------------------------------------------------------------------- *)
    31 (* ------------------------------------------------------------------------- *)
    40 (* Combinators.                                                              *)
    32 (* Combinators.                                                              *)
    41 (* ------------------------------------------------------------------------- *)
    33 (* ------------------------------------------------------------------------- *)
   163 val prodCompare :
   155 val prodCompare :
   164     ('a * 'a -> order) -> ('b * 'b -> order) -> ('a * 'b) * ('a * 'b) -> order
   156     ('a * 'a -> order) -> ('b * 'b -> order) -> ('a * 'b) * ('a * 'b) -> order
   165 
   157 
   166 val lexCompare : ('a * 'a -> order) -> 'a list * 'a list -> order
   158 val lexCompare : ('a * 'a -> order) -> 'a list * 'a list -> order
   167 
   159 
       
   160 val optionCompare : ('a * 'a -> order) -> 'a option * 'a option -> order
       
   161 
   168 val boolCompare : bool * bool -> order  (* true < false *)
   162 val boolCompare : bool * bool -> order  (* true < false *)
   169 
   163 
   170 (* ------------------------------------------------------------------------- *)
   164 (* ------------------------------------------------------------------------- *)
   171 (* Sorting and searching.                                                    *)
   165 (* Sorting and searching.                                                    *)
   172 (* ------------------------------------------------------------------------- *)
   166 (* ------------------------------------------------------------------------- *)
   261 
   255 
   262 val newInt : unit -> int
   256 val newInt : unit -> int
   263 
   257 
   264 val newInts : int -> int list
   258 val newInts : int -> int list
   265 
   259 
   266 val random : int -> int
       
   267 
       
   268 val uniform : unit -> real
       
   269 
       
   270 val coinFlip : unit -> bool
       
   271 
       
   272 val withRef : 'r ref * 'r -> ('a -> 'b) -> 'a -> 'b
   260 val withRef : 'r ref * 'r -> ('a -> 'b) -> 'a -> 'b
   273 
   261 
       
   262 val cloneArray : 'a Array.array -> 'a Array.array
       
   263 
   274 (* ------------------------------------------------------------------------- *)
   264 (* ------------------------------------------------------------------------- *)
   275 (* The environment.                                                          *)
   265 (* The environment.                                                          *)
   276 (* ------------------------------------------------------------------------- *)
   266 (* ------------------------------------------------------------------------- *)
   277 
   267 
   278 val host : unit -> string
   268 val host : unit -> string