[Haskell-cafe] Why Maybe exists if there is Either?
difrumin at gmail.com
Thu Jan 9 16:42:57 UTC 2014
But you actually might want different instances for `Maybe` and for `Either`.
For example, let's say that you have a typeclasse for serializing
data-structures into a database.
In case of Maybe you want to serialize `Nothing` into 'NULL' or
something similar; in case of Either you want to have an
entirely different structure.
Additionally, as it have been mentioned, `Either String a` is not the
same thing as `Maybe a`.
Say, you have a value of type `Either String a`. How do you know that
all `Left`-values are suppose to be empty string?
What do you actually want is `Either () a`.
On Thu, Jan 9, 2014 at 8:36 PM, Vlatko Basic <vlatko.basic at gmail.com> wrote:
> Hi Artyom,
> Yes, indeed.
> But instance declarations wouldn't be needed because we already have all the
> instances for Either. The point would be to have them unified.
> But it is a problem that there are no data constructor synonyms in Haskell.
> So at least pattern matching wouldn't be possible the simple way. Maybe
> ViewPatterns could (partially) solve that.
> -------- Original Message --------
> Subject: Re: [Haskell-cafe] Why Maybe exists if there is Either?
> From: Artyom Kazak <yom at artyom.me>
> To: haskell-cafe at haskell.org
> Date: 09.01.2014 16:23
>> Besides, even defining
>> type Maybe a = Either () a
>> in standard library wouldn’t be the same as
>> data Maybe a = Nothing | Just a
>> since in Haskell 98 type synonyms aren’t allowed in instance declarations,
>> means that programmers would still have to remember that `Maybe` is
>> `Either ()` under-the-hood every time when writing an instance.
>> Haskell-Cafe mailing list
>> Haskell-Cafe at haskell.org
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
More information about the Haskell-Cafe