Looks good to me!

I think the `Tracers.humand_readable` function name is a bit misleading still. I would assume I'm getting back a human readable tracer when I call it but I might get back a null tracer if I give it an object which doesn't respond to `#say`. Maybe let it raise an exception if you don't understand the UI object instead?