sig
  type 'a codec =
      ('-> string) * (string -> ('a, Rresult.R.msg) Rresult.result)
  exception Decode_error of string * Rresult.R.msg
  type 'a key
  val key : string -> 'Tick.KV.codec -> 'Tick.KV.key
  val key_name : 'Tick.KV.key -> string
  val key_codec : 'Tick.KV.key -> 'Tick.KV.codec
  val mem : 'Tick.KV.key -> bool
  val find : 'Tick.KV.key -> 'a option
  val get : ?absent:'-> 'Tick.KV.key -> 'a
  val set : 'Tick.KV.key -> 'a option -> unit
  type watcher
  val watch :
    'Tick.KV.key ->
    ('Tick.KV.key -> 'a option -> unit) -> Tick.KV.watcher
  val unwatch : Tick.KV.watcher -> unit
end