sig
  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 * Protocol.variant list
  type value =
      Int of int
    | Float of float
    | String of string
    | Bool of bool
    | Int64 of Int64.t
    | Tree of Protocol.variant
    | No_value
    | Collected
    | Killed
    | Hashtable of Protocol.value * Protocol.value * Protocol.value *
        Protocol.value
    | Log of (float * string) list
  type tag = int
  type msg =
      Declare of Protocol.tag * Protocol.kind * string
    | Send of Protocol.tag * Protocol.value
    | Bind of Protocol.tag list
end