We definitely will not merge it if it depends on classyprelude. We
would like to have a few dependencies as possible. And classyprelude
doesn't really do anything that benefits the end user here.
I've thought about using the nested record approach before. At the
time we did not have fclabels, data-lens, lens, etc, so working with
nested records was a major pain. Now, we have lots of solutions for
working with nested records, but they still leave me .. unexcited.
Here is an incomplete idea I just had, where we have a single, flat record,
http://hpaste.org/84883
It makes the index field polymorphic, so that when you don't have an
index, the type is (), and when you do it is something like, Index
MyRecordIndex.
Functions which do not need the index can just leave the index type
polymorphic and work with Identified or Unidentified records.
This solution could stand to be cleaned up a bit. The SetIndex class
should maybe be merged into the Indexable class or something. And some
of the type signatures seem a bit much. And, of course, it needs all
the associated helper functions.
How do people feel about the two different solutions?