
Hi
What's Uniplate?
http://www-users.cs.york.ac.uk/~ndm/uniplate/ may help to answer that question. I haven't even finished understanding SYB, yet, though; I'm still mystified by how to use Data.Generics.Twins.gzipWithQ. So, I'm not at a stage where I can usefully contrast Uniplate with the Data.Generics stuff.
Uniplate should be easier to understand than SYB. The draft paper on that web page compares Uniplate to SYB (and Compos). It also has plenty of examples of how to use Uniplate to do tasks. The manual on that page has suggested exercises to check that you can understand and extend Uniplate code. Uniplate produces more concise code, has traversal operations that are not present in the SYB library, runs faster and works in Hugs. SYB is capable of many more generic operations than Uniplate, such as gzipWithQ and much much more. Thanks Neil