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 &gt;= 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&#39;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 =&gt; a -&gt; ShowS (more efficient than gshow);<br>

  * Adding gmapAccumA :: forall b d a. (Data d, Applicative a)<br>                      =&gt; (forall e. Data e =&gt; b -&gt; e -&gt; (b, a e))<br>                      -&gt; b -&gt; d -&gt; (b, a d) ;<br>  * Adding ext1B :: (Data a, Typeable1 t)<br>

                 =&gt; a -&gt; (forall b. Data b =&gt; (t b)) -&gt; a ;<br>  * Introduction of two new generic producers (&#39;empty&#39; and &#39;constrs&#39;). 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 &amp; 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>