The Common Lisp Object System (CLOS) supports multiple dispatch (multimethods). When is this a useful feature in practice? I'm not just looking for an example of hypothetical functionality that would be easier to implement with multiple dispatch. I'm looking for examples of where it's useful in real software, for any value of real that means it would get written for something other than just an example.
 In programming tutorials, are examples contrived more often than not?