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

Christopher Allen cma at bitemyapp.com
Tue May 8 09:20:59 UTC 2018


It's completely lawless and there's no semantically meaningful or
unique "default" value for most types. It's much better practice to
use explicit default values declared by name and imported explicitly.

Data.Default is probably one of the most notorious abuses of type
classes in the ecosystem. I'm aware it's common, I'd just hoped people
would've started trimming it away.

Consider Monoid. What's the default value for `Int`? Should it be the
identity? The zero? For which operations over `Int`? A "default" value
should either be something explicitly created and defined as a value
for a domain-specific purpose or it should have a specific meaning
with respect to an operation defined by a law such as w/ the monoids
of summation and multiplication.


On Tue, May 8, 2018 at 4:10 AM, 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 ?
>
>
>
> 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



-- 
Chris Allen
Currently working on http://haskellbook.com


More information about the Haskell-Cafe mailing list