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:


Change logNone available
Dependenciesarray (>=, base (==4.*), containers (>=, fclabels (>=0.9.1), monads-fd (>=, transformers (>= [details]
AuthorJussi Knuuttila
Home page
UploadedWed Aug 11 11:15:52 UTC 2010 by JussiKnuuttila
Downloads323 total (2 in last 30 days)
0 []
StatusDocs uploaded by user
Build status unknown [no reports yet]




Maintainers' corner

For package maintainers and hackage trustees