data-default WAS: [containers] Proposal: Change to the Data.Map Monoid

Andreas Abel abela at chalmers.se
Wed May 21 16:32:41 UTC 2014


On 21.05.2014 18:11, Adam Bergmark wrote:
 > * 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.

+1

"default list" does not immediately resolve to "empty list" in my mind.

I understand "default value" as "resonable value in this situation" or 
"don't care", rather than the specific "zero" or "empty".

On 21.05.2014 18:11, Adam Bergmark 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
> <http://hackage.haskell.org/package/data-default-0.5.3/docs/Data-Default.html#t:Default> r
> => Default
> <http://hackage.haskell.org/package/data-default-0.5.3/docs/Data-Default.html#t: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 at gmail.com
> <mailto:jmacristovao at gmail.com>> wrote:
>
>     I stand corrected, he actually posted something on github this month.
>
>     Lucas, what would you think about merging generics support into
>     Data.Default?
>
>     João
>
>
>     2014-05-21 16:31 GMT+01:00 João Cristóvão <jmacristovao at gmail.com
>     <mailto:jmacristovao at gmail.com>>:
>
>         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.
>         His github repository shows no activity since October last year.
>         https://github.com/mauke
>
>         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).
>         If 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).
>
>         Cheers
>         João
>
>
>         2014-05-21 16:18 GMT+01:00 Michael Snoyman <michael at snoyman.com
>         <mailto:michael at snoyman.com>>:
>
>             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.
>
>             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.
>
>
>             On Wed, May 21, 2014 at 6:12 PM, João Cristóvão
>             <jmacristovao at gmail.com <mailto:jmacristovao at gmail.com>> wrote:
>
>                 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.
>
>                 If you prefer a single package with all the dependencies
>                 (and with additional generics support), my own fork
>                 might be useful:
>                 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 at snoyman.com <mailto:michael at 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 at gmail.com <mailto:ekmett at 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.
>
>                         -Edward
>
>
>                         On Wed, May 21, 2014 at 6:38 AM, Herbert Valerio
>                         Riedel <hvr at gnu.org <mailto:hvr at gnu.org>> wrote:
>
>                             On 2014-05-21 at 00:23:44 +0200, Andreas
>                             Abel wrote:
>                              >>> _Lots_ of users initialize empty maps
>                             with mempty
>                              >
>                              > Well, this is another issue, empty should
>                             be overloaded via
>                              >
>                              > class Empty a where
>                              >   empty :: a
>
>                             Btw, isn't this what
>
>                             http://hackage.haskell.org/package/data-default
>
>                             provides?
>                             _______________________________________________
>                             Libraries mailing list
>                             Libraries at haskell.org
>                             <mailto:Libraries at haskell.org>
>                             http://www.haskell.org/mailman/listinfo/libraries
>
>
>
>                         _______________________________________________
>                         Libraries mailing list
>                         Libraries at haskell.org <mailto:Libraries at haskell.org>
>                         http://www.haskell.org/mailman/listinfo/libraries
>
>
>
>                     _______________________________________________
>                     Libraries mailing list
>                     Libraries at haskell.org <mailto:Libraries at haskell.org>
>                     http://www.haskell.org/mailman/listinfo/libraries
>
>
>
>
>
>
>     _______________________________________________
>     Libraries mailing list
>     Libraries at haskell.org <mailto:Libraries at haskell.org>
>     http://www.haskell.org/mailman/listinfo/libraries
>
>

-- 
Andreas Abel  <><      Du bist der geliebte Mensch.

Department of Computer Science and Engineering
Chalmers and Gothenburg University, Sweden

andreas.abel at gu.se
http://www2.tcs.ifi.lmu.de/~abel/


More information about the Libraries mailing list