syb: Scrap Your Boilerplate!<br>================================================================================<br><br>Scrap Your Boilerplate (SYB) is a library for generic programming in Haskell. It <br>is supported since the GHC >= 6.0 implementation of Haskell. Using this <br>
approach, you can write generic functions such as traversal schemes (e.g., <br>everywhere and everything), as well as generic read, generic show and generic <br>equality (i.e., gread, gshow, and geq). This approach is based on just a few <br>
primitives for type-safe cast and processing constructor applications. <br><br>It was originally developed by Ralf Lämmel and Simon Peyton Jones. Since then, <br>many people have contributed with research relating to SYB or its applications. <br>
<br>More information is available on the webpage: <br><a href="http://www.cs.uu.nl/wiki/GenericProgramming/SYB">http://www.cs.uu.nl/wiki/GenericProgramming/SYB</a><br><br><br>What's new<br>----------<br><br>The biggest improvements from version 0.1 are:<br>
* Reintegration of the testsuite;<br> * Introduction of the Generics.SYB.* module hierarchy (as synonyms for their<br> Data.Generics.* counterparts);<br> * Adding gshows :: Data a => a -> ShowS (more efficient than gshow);<br>
* Adding gmapAccumA :: forall b d a. (Data d, Applicative a)<br> => (forall e. Data e => b -> e -> (b, a e))<br> -> b -> d -> (b, a d) ;<br> * Adding ext1B :: (Data a, Typeable1 t)<br>
=> a -> (forall b. Data b => (t b)) -> a ;<br> * Introduction of two new generic producers ('empty' and 'constrs'). The<br> former produces an empty value of a given datatype, while the latter<br>
produces a list of values of a datatype, each using a different constructor.<br><br><br>Features<br>--------<br><br>* Easy generic programming with combinators<br><br>* GHC can derive Data and Typeable instances for your datatypes<br>
<br>* Comes with many useful generic functions<br><br><br>Requirements<br>------------<br><br>* GHC 6.10.1 or later<br>* Cabal 1.6 or later<br><br><br>Download<br>--------<br><br>Get the package:<br><br> <a href="http://hackage.haskell.org/package/syb">http://hackage.haskell.org/package/syb</a><br>
<br>Get the source:<br><br> darcs get <a href="http://code.haskell.org/syb/">http://code.haskell.org/syb/</a><br><br><br>Bugs & Support<br>--------------<br><br>Please report issues or request features at the bug tracker:<br>
<br> <a href="http://code.google.com/p/scrapyourboilerplate/issues/list">http://code.google.com/p/scrapyourboilerplate/issues/list</a><br><br>For discussion about the library with the authors, maintainers, and other<br>
interested persons use the mailing list:<br>
<br> <a href="http://www.haskell.org/mailman/listinfo/generics">http://www.haskell.org/mailman/listinfo/generics</a><br><br>