method4 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 
        -> ArgOut a3 -> ArgOut a4
        -> IDispatch i -> IO (a1,a2,a3,a4)
method4 member args argout1 argout2 argout3 argout4 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID4 dispid args argout1 argout2 argout3 argout4 obj
method4 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 
        -> ArgOut a3 -> ArgOut a4
        -> IDispatch i -> IO (a1,a2,a3,a4)
method4 member args argout1 argout2 argout3 argout4 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID4 dispid args argout1 argout2 argout3 argout4 obj
method4 member args argout1 argout2 argout3 argout4 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID4 dispid args argout1 argout2 argout3 argout4 obj