[Haskell-cafe] Taking over `data-default-*`

Matt parsonsmatt at gmail.com
Tue May 8 16:26:20 UTC 2018


> It is sometimes useful for things like configuration, where a proper
Monoid instance would be tricky and unnecessary. Other than this, I don't
know of any legitimate uses.

Configuration records have a fantastic monoid instance. `mempty` provides
your defaults, and `mappend` provides an update. So you can do `mempty <>
fileConfiguration <> environmentVariables <> commandLineArgs` (or you can
flip the bias to get whatever overriding behavior you want). With
`DerivingVia`, we should be able to make this derivable, using the
First/Last semigroups/monoids and the isomorphism between tuples and
product types.

I'm weakly opposed to this type class as `def :: Foo` is less ergonomic
than `defFoo`, and I'm never polymorphic over what I want a default in.
But, as someone that doesn't want to use it, I don't have much of a say in
how it gets run or maintained :)

Matt Parsons

On Tue, May 8, 2018 at 3:39 AM, Marco Zocca <zocca.marco at gmail.com> wrote:

> While I very much agree with all of you on the need for solid
> typeclass laws, I think Default still has its place in the library
> author toolkit .
>
> Think for example of configuration data for very flexible
> functionality such as plotting.
>
> On the other hand, if it's such a bad idea, what's a good course of
> action in this case ? Take over and deprecate ?
>
>
>
>
>
> On Tue, May 8, 2018 at 11:21 AM, Chris Wong <lambda.fairy at gmail.com>
> wrote:
> > On Tue, May 8, 2018 at 9:10 PM, Marco Zocca <zocca.marco at gmail.com>
> wrote:
> >>
> >> data-default alone is depended on by > 500 packages :
> >> http://packdeps.haskellers.com/reverse/data-default
> >>
> >> Could you motivate why it's not a good idea ?
> >>
> >
> > I can think of two reasons:
> >
> > - It has no laws, so there's formal specification that tells us whether
> an
> > instance is "correct" or not.
> >
> > - Type classes are useful when there is a large family of generic
> operations
> > that can work with them. For example, the utility functions in
> Control.Monad
> > [1] are used in all kinds of Haskell programs. But there are no such
> generic
> > operations that apply to all Default instances.
> >
> > That said -- as you note, it's has quite a few dependents so it's great
> that
> > someone is stepping up to maintain it regardless.
> >
> > Chris
> >
> > [1]
> > https://hackage.haskell.org/package/base-4.11.1.0/docs/
> Control-Monad.html#g:4
> >
> >>
> >>
> >> On Tue, May 8, 2018 at 11:02 AM, Christopher Allen <cma at bitemyapp.com>
> >> wrote:
> >> > Is this something folks still think is a good idea? I purge
> >> > Data.Default from projects I work on.
> >> >
> >> > On Tue, May 8, 2018 at 3:58 AM, Marco Zocca <zocca.marco at gmail.com>
> >> > wrote:
> >> >> Dear all,
> >> >>
> >> >>   I've been increasingly relying on data-default-class, but sadly it
> >> >> doesn't look like it's currently maintained; there are some tickets
> on
> >> >> the github issue tracker that would need some attention.
> >> >>
> >> >> I have tried contacting the authro/current maintainer Lukas Mai
> (CC'd)
> >> >> by email but have not received an answer so far (I hope he's doing
> >> >> well, btw).
> >> >>
> >> >> This is my first public request for taking over the `data-default`
> >> >> family of packages:
> >> >>
> >> >> data-default-class
> >> >> data-default-instances-base
> >> >> data-default-instances-containers
> >> >> data-default-instances-dlist
> >> >> data-default-instances-old-locale
> >> >> data-default
> >> >>
> >> >> Kind regards,
> >> >> Marco Zocca
> >> >> (http://hackage.haskell.org/user/ocramz)
> >> >> _______________________________________________
> >> >> Libraries mailing list
> >> >> Libraries at haskell.org
> >> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/libraries
> >> >
> >> >
> >> >
> >> > --
> >> > Chris Allen
> >> > Currently working on http://haskellbook.com
> >> _______________________________________________
> >> Haskell-Cafe mailing list
> >> To (un)subscribe, modify options or view archives go to:
> >> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> >> Only members subscribed via the mailman list are allowed to post.
> >
> >
> >
> >
> > --
> > Chris Wong (https://lambda.xyz)
> >
> > "I had not the vaguest idea what this meant and when I could not remember
> > the words, my tutor threw the book at my head, which did not stimulate my
> > intellect in any way." -- Bertrand Russell
> _______________________________________________
> Haskell-Cafe mailing list
> To (un)subscribe, modify options or view archives go to:
> http://mail.haskell.org/cgi-bin/mailman/listinfo/haskell-cafe
> Only members subscribed via the mailman list are allowed to post.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/haskell-cafe/attachments/20180508/65a8cab1/attachment.html>


More information about the Haskell-Cafe mailing list