Say I have some functions that deliver mail to various kinds of
mailboxes (I have mbox, mh, and maildir mailboxes in mind).  I've also
got a class called Mail::LDA that deals with more generic mail
delivery issues (logging delivery attempts to a file, exiting the
process with specific exit codes to bounce or defer the mail delivery,
etc.).

The mailbox delivery functions are self contained -- i.e. they don't
require any instance data other than their arguments, so no particular
object needs to be instantiated to use them.  In contrast, Mail::LDA
is an object because it needs to keep state around -- what log to log
to, the message being processed, etc.

What criteria would I use to decide whether to make the mailbox
delivery functions within a module (so they might be mixed into other
objects) or to just make them class methods of Mail::LDA?

(I have a bias against module functions that get mixed into classes
with 'include' because I find the code harder to understand that way
-- am I alone in this?)

-- 
matt