# Module Protocol

    module Protocol: sig .. end

    type kind =

`|` | `Point`
`|` | `Time`
`|` | `Value_int`
`|` | `Value_float`
`|` | `Value_bool`
`|` | `Value_string`
`|` | `Tag_count`
`|` | `Tag_size`
`|` | `Ktree`
`|` | `Hash`
`|` | `Special`
`|` | `Klog`

    type variant =

`|` | `Node of `string * variant list``

    type value =

`|` | `Int of `int``
`|` | `Float of `float``
`|` | `String of `string``
`|` | `Bool of `bool``
`|` | `Int64 of `Stdlib.Int64.t``
`|` | `Tree of `variant``
`|` | `No_value`
`|` | `Collected`
`|` | `Killed`
`|` | `Hashtable of `value * value * value * value``
`|` | `Log of `(float * string) list``

    type tag = int

    type msg =

`|` | `Declare of `tag * kind * string``
`|` | `Send of `tag * value``
`|` | `Bind of `tag list``