let fold f idx acc =
let acc = Signature.fold
(fun acc (k, info) -> f (Key.SigKey k) info acc)
acc idx.sgn in
let acc = H.fold
(fun k info acc -> f (Hkey.key k) info acc) idx.other acc in
List.fold_left
(fun acc (call, (_, sgn)) ->
Signature.fold (fun acc (k, info) ->
f (Key.SigCallKey (call, k)) info acc)
acc sgn)
acc idx.calls