Add Zero and One to Data.Functor (mirroring V1, U1)

Eric Mertens emertens at
Thu Jan 26 17:40:24 UTC 2017

Hi everyone,

I don't think it's obvious why these type need to be in the base package
itself. It makes sense that the GHC.Generics types are in base because GHC
needs access to them to derive Generic. We already have Proxy in base. The
trivia package was released in 2014 but no other package has needed that
functionality enough to depend on it. What problem is being solved?

I think the types provided by packages like transformers are more important
to general Haskell programming, and I'm quite happy to have those types in
a separate package.

Best regards,
Eric Mertens

On Tue, Jan 24, 2017 at 11:18 AM Baldur Blöndal <baldurpet at> wrote:

> Deadline of 2 weeks.
> Original discussion: ⁽¹⁾
> data Zero a
> data One  a = One
> Same definitions as in ‘trivia’ package,⁽²⁾
> if a consensus is reached we can update
> the documentation for Free:⁽³⁾
> “Free Zero” is isomorphic to Identity.
> “Free One” is isomorphic to Maybe.
> ⁽¹⁾
> ⁽²⁾
> ⁽³⁾
> _______________________________________________
> Libraries mailing list
> Libraries at
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>

More information about the Libraries mailing list