[Haskell-cafe] Re: [Haskell] ANN: Uniplate 1.0

Isaac Dupree isaacdupree at charter.net
Mon Jun 18 20:23:08 EDT 2007


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Neil Mitchell wrote:
> Hi,
> 
> I am pleased to announce Uniplate (formerly known as Play), a library
> for boilerplate removal requiring only Haskell 98 (for normal use) and
> optionally multi-parameter type classes (for more advanced features).
> This library has been tested with Yhc, Hugs and GHC.
> 
> The Uniplate library can do some of the same things as Scrap Your
> Boilerplate (SYB), and has functions that can be used in a similar
> manner to everywhere and everything.
> 
> LINKS
> 
> Project home page: http://www-users.cs.york.ac.uk/~ndm/uniplate/
> Hackage release:
> http://hackage.haskell.org/cgi-bin/hackage-scripts/package/uniplate-1.0
> Haddock docs: http://www.cs.york.ac.uk/fp/haddock/uniplate/
> Short Manual: http://www.cs.york.ac.uk/fp/darcs/uniplate/uniplate.htm
> Draft Paper:
> http://www-users.cs.york.ac.uk/~ndm/downloads/draft-uniplate-15_jun_2007.pdf
> 
> 
> The manual contains a basic overview of some bits of the library, the
> paper goes into more detail, but is intended to still be a readable
> introduction to the library.

The draft paper feels more readable and up-to-date than the manual.
However I have one comment about it.
In the section on DERIVE for Uniplate instances, the type appearing
directly in one of its own constructors is demonstrated being
recognized, as is the type appearing in a list in one of its own
constructors.  But no mention is made of just what powers the deriving
has.  I presume lists are a special case (how else would it be
possible), but a naive reading gives no particular reason to suspect
that the type in a Data.Map or Data.Set or any other collection, in one
of its own constructors, would not be allowed.  Also is there any
restriction on the placement of lists in the constructor? I can't see how
data Foo = CFoo Foo [Foo] Foo [Foo] Foo
could be translated. Does putting the list somewhere other than last work?

Isaac
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iD8DBQFGdyHsHgcxvIWYTTURAiWuAKCUKf7aGf1rO58gcgxYkqbO7oKNCwCfTRpo
0UsQHx9riP+cZ/S/gloAy3g=
=cAxY
-----END PGP SIGNATURE-----


More information about the Haskell-Cafe mailing list