require `ring'
use car, cddr instead of caddr

caddr is definded in cl.
quiet byte-compiler
require `grep' at runtime

It isn't loaded on demand (yet) so this is the save way to go.