Define Show Trace in terms of Show Behavior.
Replace deep Uniplate magic with a Writer monad.
Drop Uniplate dependency in favor of SYB.

Using Data.Generics isn't that much more painful than Uniplate, and the
syb package is included in the Haskell Platform.

This is really an intermediate step toward using RepLib in order to use
the "unbound" library. RepLib has definitions that are compatible with
SYB, but not with Uniplate.
Replace SYB with RepLib, preparing to use unbound.