Some interesting ideas for fine-grained modules (in fact, down to downright
miniscule modules) in:
http://www.sds.lcs.mit.edu/Larch/handbook/toc.html

They use slightly different language, but the essense seems to be there:
Ruby => Larch
module => trait
includes => includes
code => introduces + asserts + implies
module parameterized by includer methods => trait with parameter
expects to be provided by includer => trait parameters, assumes

Here are some of their 'modules':
Maps
    hashes, hash composition, arrays..
Containers
    Sets, Bags, etc. and operations
LexicographicOrder
    defines lex ordering for any string-like thing
MinMax
    defines min, max for anything with appropriate <=
DerivedOrders
    defines any 3 comparison operators, given the fourth
Relation
    relational operators and predicates, leading up to ...
Graph
    with graph operators

Cheers!