mul as bs  = mull as bs [I]
    where
        mull xs ys count | count /= xs = add ys (mull xs ys (inc count))
                         | otherwise = ys
mul as bs  = mull as bs [I]
    where
        mull xs ys count | count /= xs = add ys (mull xs ys (inc count))
                         | otherwise = ys
mul as bs  = mull as bs [I]
    where
        mull xs ys count | count /= xs = add ys (mull xs ys (inc count))
                         | otherwise = ys