I honestly don't feel very strongly about usage of Default. What I've found it useful for is a very narrow category: a function which takes a configuration parameter that users likely never want to modify. For example: xml-conduit has various parsing and rendering settings, but most use cases are good with the default. There's a cognitive overhead for a user to remember the default parameter name (is it defaultXMLSettings? defaultXmlSettings? defParseSettings?).
On Wed, May 21, 2014 at 7:11 PM, Adam Bergmark <adam@bergmark.nl> wrote:
As is, I don't find data-default to be useful, and decided to move away from it in fay for a number of reasons:* You cannot add arguments to it because of the existing Default r => Default (e -> r) instance or run it in e.g. IO (via Chris Done)* The previous point means it's likely you'll have to scrap your instance at some point instead of just changing a type* You need to either re-export def or users need to depend on data-default themselves. Even if it was in base (but not in Prelude) they would need to add an additional import* The semantics needs to be defined for each instance* I don't see any use case for abstracting over different instances of Default* I think it's useful to be explicit about the "default" value you are using. I'm unlikely to use `def' over `Set.empty'. Code is read more often than it's written.I think Empty sounds like a better name. Some things have a clear "empty" value that will never change. I don't object strongly to using Empty/Default for these.On Wed, May 21, 2014 at 5:37 PM, João Cristóvão <jmacristovao@gmail.com> wrote:
I stand corrected, he actually posted something on github this month.João
Lucas, what would you think about merging generics support into Data.Default?
2014-05-21 16:31 GMT+01:00 João Cristóvão <jmacristovao@gmail.com>:JoãoCheersIf he is not interested or does not respond within a reasonable time frame, I propose myself as maintainer of the package (and will gladly accept suggestions).But I do guess it is the right thing to do: if anyone knows Lucas and can contact him, to see if he stills wishes to maintain the package, I would very much appreciate that (I've also included the .cabal listed email in this conversation).His github repository shows no activity since October last year.I definitely see your point, and have suffered that myself, of course.I just guess I did not want to get with the trouble of taking ownership of a package, after trying to contact Lucas Mai on February this year, with no response.
https://github.com/mauke
2014-05-21 16:18 GMT+01:00 Michael Snoyman <michael@snoyman.com>:I think data-default-generics is overall an improvement on data-default, but the very nature of a fork here makes both packages less useful. I'd much rather that data-default simply merged in data-default-generics.Starting a new thread to continuing discussing this (I should have done so in the first place).Here's the problem: a class like Default is most useful if everyone's using the same class. The reason is that multiple libraries are all free to reexport the `def` symbol, and they'll all refer to the same identifier. If multiple `def`s exist, then this doesn't work, you need to be careful about *which* `def` you're using, and you may as well just export a default value under its own unique name.
On Wed, May 21, 2014 at 6:12 PM, João Cristóvão <jmacristovao@gmail.com> wrote:
If you prefer a single package with all the dependencies (and with additional generics support), my own fork might be useful:Sorry for continuing the off-topic, and for promoting a package of mine:If you only need the class definition, http://hackage.haskell.org/package/data-default-class is a better choice, with no dependencies.
http://hackage.haskell.org/package/data-default-generics
Although I mirrored the original package dependencies, many of which might actually be unnecessary... (given the generics implementation).Cheers
2014-05-21 15:59 GMT+01:00 Michael Snoyman <michael@snoyman.com>:At the risk of veering terribly off-topic... the splitting of data-default into all of those packages caused me a bunch of dependency headaches, most of which I still don't fully comprehend. I miss the good ol' days of a single package.
On Wed, May 21, 2014 at 5:53 PM, Edward Kmett <ekmett@gmail.com> wrote:
I find myself rather hesitant to recommend that instantiation of the idea ever since it exploded into a half-dozen packages full of orphan instances, but yes.-EdwardOn Wed, May 21, 2014 at 6:38 AM, Herbert Valerio Riedel <hvr@gnu.org> wrote:On 2014-05-21 at 00:23:44 +0200, Andreas Abel wrote:Btw, isn't this what
>>> _Lots_ of users initialize empty maps with mempty
>
> Well, this is another issue, empty should be overloaded via
>
> class Empty a where
> empty :: a
http://hackage.haskell.org/package/data-default
provides?
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries
_______________________________________________
Libraries mailing list
Libraries@haskell.org
http://www.haskell.org/mailman/listinfo/libraries