
Let me give you an example from xmonad. A good configuration system would
let me, building a config, use it to set local defaults, like a variant of
greenXPConfig for all XMonad.Prompt uses. But I can't use `def` for this.
As a user, this has only changed the value I use to build a separate
configuration I still have to use --- and done so in a way prone to produce
weird errors if I make a mistake.
Typeclasses are not flexible enough to provide a good solution here, and
`def` ends up an annoyance instead of a help.
On Tue, May 8, 2018 at 5:39 AM, Marco Zocca
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 9:10 PM, Marco Zocca
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
On Tue, May 8, 2018 at 11:21 AM, Chris Wong
wrote: 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
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
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@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.
-- brandon s allbery kf8nh sine nomine associates allbery.b@gmail.com ballbery@sinenomine.net unix, openafs, kerberos, infrastructure, xmonad http://sinenomine.net