let missing_output ~call:m_out_call ~called:m_out_called =
    if debug then
      Format.printf "check_out : call=%a called=%a\n" pretty m_out_call
                                                    pretty m_out_called;
    let mf1 = m_out_call.T.m1 in
    let mf2 = m_out_call.T.m2 in
    let mg1 = m_out_called.T.m1 in
    let mg2 = m_out_called.T.m2 in
    let needed_mg2 = (* we need (mf1 + mf2) for this out in the call *)
      Mark.merge mf1 mf2 in
    let min_mg2 = (* let remove from needed_mg2 what we have in mg1 *)
      Mark.minus needed_mg2 mg1 in
    if Mark.is_included min_mg2 mg2 then None 
    else let m2 = mk_m2 min_mg2 in
      if debug then 
        Format.printf "check_out missing output -> %a\n" pretty m2;
      (Some m2)