module Daikon:This module provides support for the Daikon tool.sig..end
Daikon (available at http://groups.csail.mit.edu/pag/daikon/) is an invariant detector that works by analyzing the traces produced by an instrumented program.
Bolt can produce Daikon-comptabile traces by using statements like:
LOG Daikon.t WITH Daikon.point "pt" [Daikon.int "i" i]; val t : stringtype variable 
typeproperties =(string * string) list
type'avariable_builder =string -> 'a -> variable
val bool : bool variable_builderval bool_option : bool option variable_builderval bool_list : bool list variable_builderval bool_array : bool array variable_builderval int : int variable_builderval int_option : int option variable_builderval int_list : int list variable_builderval int_array : int array variable_builderval float : float variable_builderval float_option : float option variable_builderval float_list : float list variable_builderval float_array : float array variable_builderval string : string variable_builderval string_option : string option variable_builderval string_list : string list variable_builderval string_array : string array variable_builderval make_variable_builder : ('a -> variable list) -> 'a variable_builderval tuple2 : 'a variable_builder ->
       'b variable_builder -> ('a * 'b) variable_buildertuple2 t1 t2 returns a variable builder for couple of type t1 * t2.val tuple3 : 'a variable_builder ->
       'b variable_builder ->
       'c variable_builder -> ('a * 'b * 'c) variable_buildertuple3 t1 t2 t3 returns a variable builder for triple of type t1 * t2 * t3.val tuple4 : 'a variable_builder ->
       'b variable_builder ->
       'c variable_builder ->
       'd variable_builder -> ('a * 'b * 'c * 'd) variable_buildertuple4 t1 t2 t3 t4 returns a variable builder for quadruple of type t1 * t2 * t3 * t4.val tuple5 : 'a variable_builder ->
       'b variable_builder ->
       'c variable_builder ->
       'd variable_builder ->
       'e variable_builder ->
       ('a * 'b * 'c * 'd * 'e) variable_buildertuple5 t1 t2 t3 t4 t5 returns a variable builder for quintuple of type t1 * t2 * t3 * t4 * t5.val point : string -> variable list -> propertiespoint id vars defines the properties for a given point in code,
    id being the identifier for the point and vars the variable
    list.val enter : string -> variable list -> propertiesenter id pars Defines the properties for a entry point in code
    (typically function begin), id being the identifier for the function
    and pars the parameter list.val exit : string -> variable -> variable list -> propertiesexit id ret pars Defines the properties for a exit point in code
    (typically function end), id being the identifier for the function,
    ret the returned value and pars the parameter list.val decls_header : string listval decls_render : Event.t -> stringval dtrace_header : string listval dtrace_render : Event.t -> stringval layout_decls : Layout.tval layout_dtrace : Layout.t