[Haskell-cafe] extensible records - Vinyl - alternatives?
acowley at seas.upenn.edu
Sat May 3 16:21:50 UTC 2014
Disclaimer: I do contribute to Vinyl, so I'm not objective.
Things I like about vinyl:
- It is, for the most part, pretty simple. You can reimplement it in very few lines of code, which is good so you don't feel like you're getting locked into someone else's choices. I take advantage of this when exploring design spaces all the time.
- It is, for the most part, pretty fast. You might be reluctant to introduce an abstraction in code whose performance you care about. You might think the abstraction is only worth it when complexity reaches a certain level. Vinyl's repo has a benchmark suite of *dead simple* usage that demonstrates minimal loss of performance. I really like this!
Otoh, the HList contributors are amazing, so being able to benefit from their expertise is quite appealing.
> On May 3, 2014, at 6:16 AM, Peter Althainz <althainz at gmail.com> wrote:
> Dear All,
> I'm searching a handsome library for handling large amounts of configuration data in a flexible manner. So to speak I want to use some kind of inheritance of data fields. I think this is where the extensible records discussion is a proper description of my use case.
> I've found 2 libraries making this work, so far:
> I currently prefer Vinyl due to the complex types in HList, lens compatibiliy, named labels. (I love the HList and OOHaskel papers, but for practical use, I currently prefer Vinyl).
> What do you think, what is the best way nowadays to use extensible records? Is Vinyl a good choice from your point of view?
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe