-------- Original Message --------
Subject: Re: [Haskell-cafe] Why Maybe exists if there is Either?
From: Nickolay Kudasov <nickolay.kudasov@gmail.com>
To: vlatko.basic@gmail.com
Cc: "haskell-cafe@haskell.org" <haskell-cafe@haskell.org>
Date: 09.01.2014 16:14
Hi Vlatko,
Actually,
Maybe
can be seen asEither () a
. NotString
orInt
because then you would have multipleNothing
s (ifLeft ""
is Nothing then what wouldLeft "hello"
be?). SoEither e a
is (generally) somewhat bigger thanMaybe a
.Since
Either
can be used to represent strictly bigger types, you may not want it sometimes.lookup
function (to find element in a list by its index) is an example. It is unnecessary to keep extra information in()
orString
orInt
about what caused failure. So if we either don’t care what caused failure or can unambiguously determine the causeMaybe
suits better (is more readable) thanEither ()
.Nick
2014/1/9 Vlatko Basic <vlatko.basic@gmail.com>
Hello Cafe,
With my current knowledge of Haskell, I do not see why is there Maybe if we have Either.
For example, Functor and Monad instances (and many others) of Maybe and Either are the same (except for fail).
In other words, this should hold:
Maybe a = Either String a -- String or something else
Nothing = Left ""
Just a = Right a
I'm curious to find out what was the reasoning to make Maybe?
What is the added value with introducing it?
In which situations the above substitution does not hold?
Best regards,
vlatko
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe