method8 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
        -> ArgOut a4 -> ArgOut a5 -> ArgOut a6
        -> ArgOut a7 -> ArgOut a8
        -> IDispatch i 
        -> IO (a1, a2, a3, a4, a5, a6, a7, a8)
method8 member args argout1 argout2 argout3 
                    argout4 argout5 argout6 
                    argout7 argout8 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID8 dispid args argout1 argout2 argout3 
                            argout4 argout5 argout6 
                            argout7 argout8 obj


--Methods invoked on DISPID.
method8 :: Member
        -> [VarIn]
        -> ArgOut a1 -> ArgOut a2 -> ArgOut a3
        -> ArgOut a4 -> ArgOut a5 -> ArgOut a6
        -> ArgOut a7 -> ArgOut a8
        -> IDispatch i 
        -> IO (a1, a2, a3, a4, a5, a6, a7, a8)
method8 member args argout1 argout2 argout3 
                    argout4 argout5 argout6 
                    argout7 argout8 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID8 dispid args argout1 argout2 argout3 
                            argout4 argout5 argout6 
                            argout7 argout8 obj


--Methods invoked on DISPID.
method8 member args argout1 argout2 argout3 
                    argout4 argout5 argout6 
                    argout7 argout8 obj = do
    dispid <- obj # getMemberID member
    catchMethError member $
      methodID8 dispid args argout1 argout2 argout3 
                            argout4 argout5 argout6 
                            argout7 argout8 obj


--Methods invoked on DISPID.