type 'uid commit = {- root : 'uid;
- preds : 'uid list;
}val tree : ('uid, 'uid list) kindval tag : ('uid, 'uid) kindval make : kind:('uid, 'preds) kind -> 'preds -> ?ts:int64 -> 'uid -> 'uid tval get_limits : 
  compare:('uid -> 'uid -> int) ->
  ('uid * 'ref * bool) list ->
  ('uid, 'ref) Smart.Commands.command list ->
  'uid list * 'uid listval commands : 
  's Sigs.scheduler ->
  capabilities:Smart.Capability.t list ->
  equal:('ref -> 'ref -> bool) ->
  deref:('store -> 'ref -> ('uid option, 's) Sigs.io) ->
  'store ->
  [ `Create of 'ref | `Delete of 'ref | `Update of 'ref * 'ref ] list ->
  ('uid * 'ref * bool) list ->
  (('uid, 'ref) Smart.Commands.t option, 's) Sigs.ioval get_uncommon_objects : 
  's Sigs.scheduler ->
  compare:('uid -> 'uid -> int) ->
  ('uid, 'ref, 'uid t, 'g, 's) Sigs.access ->
  ('uid, 'uid t, 'g) Sigs.store ->
  exclude:'uid list ->
  sources:'uid list ->
  ('uid list, 's) Sigs.io