let check_input sgn result (in_key, mark) =
let add_if_needed m_sgn (in_key, m_input) (marks, more) =
if debug then
Format.printf "check_input : sgn=%a ; needed=%a\n"
M.pretty m_sgn M.pretty m_input;
let missing_m = M.missing_input ~call:m_sgn ~called:m_input in
match missing_m with
| None -> marks, more
| Some missing_m ->
let new_input = M.is_bottom m_sgn in
(in_key, missing_m) :: marks, more || new_input
in
let m_sgn =
try Signature.find_in_info sgn in_key
with PdgIndex.NotFound -> M.bottom
in add_if_needed m_sgn (in_key, mark) result