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