The fields package

[Tags: bsd3, library]

Using records, especially nested records, in Haskell can sometimes be a bit of a chore. Fortunately, there are several libraries in hackage that make working with records easier. This library is my attempt to build on top of these libraries to make working with records even more pleasant!

In most imperative languages, records are accessed using the infix dot operator. Record fields can be read simply by suffixing a record value with .field and they can be modified by simply assigning to that location. Although this is not the only way to access records (indeed, Haskell does not use it), many people (including myself) like it. This library attempts to support this style for Haskell records in the following manner:

 record.field.subfield      becomes     record .# field # subfield
 record.field = value       becomes     record .# field =: value

Of course, the infix assignment in Haskell is pure and doesn't actually mutate anything. Rather, a modified version of the record is returned.

In addition, the following features are supported:

For a detailed description of usage, see Data.Record.Field.

This library is a work-in-progress. Some limitations, deficiencies, points of interest and possible future improvements include:


Dependenciesarray (>=, base (==4.*), containers (>=, fclabels (>=0.9.1), monads-fd (>=, transformers (>=
AuthorJussi Knuuttila
Home page
Upload dateWed Aug 11 11:15:52 UTC 2010
Uploaded byJussiKnuuttila
Downloads112 total (14 in last 30 days)




Maintainers' corner

For package maintainers and hackage trustees