[Haskell-beginners] questions about product types

Brent Yorgey byorgey at seas.upenn.edu
Sun Jan 8 20:43:48 CET 2012


On Fri, Jan 06, 2012 at 09:28:21PM +0000, Tom Doris wrote:
> 
> My questions are:
> 1) I presume this approach has been explored and probably there is a well
> thought through library of helper classes and functions already out there,
> can someone please point me to it?

One package which I think is similar is

  http://hackage.haskell.org/package/has

> 2) I don't know much about Haskell generics, but for product types in which
> all contained values are distinct types, it should be possible to
> automatically derive instances of Extract, since there's never ambiguity as
> to which field you want from a container if you've specified the type of
> value you want, is this possible, and if so does it already exist?

It's easy to extract a field of a certain type using a generic
traversal (of the sort found in packages like uniplate or syb).  To
automatically derive instances of Extract I think you would have to
use Template Haskell.

> 3) In type theory, are product types consisting of distinct member types
> considered special in any way? i.e. does the concept have a name and what
> special properties do they have?

Not that I know of.

-Brent



More information about the Beginners mailing list