<html>
  <head>
    <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
    <style id="EHTipGlobalStyle">.EHTipToolTip * {background: inherit;font-family: inherit;font-size: inherit;font-size-adjust: none;font-stretch: normal;line-height: inherit;font-variant: normal;border: 0px;text-transform: inherit;color: inherit;font-style: inherit;text-decoration: inherit;margin: 0px 0px 0px 0px;padding: 0px 0px 0px 0px;float: none;display: inline;cursor: default;}
.EHTipReplacer, .EHTipKey, .EHTipAudio {cursor: pointer;}
.EHTipToolTip hr {margin: 0.4em 0;display: block;border: 1px inset;}
.EHTipTranslation {font-style: normal;}
.EHTipTranslation a {color: #000099;font-style: normal;text-decoration: none;}
.EHTipTranslation a:hover {background: inherit;color: #000000;text-decoration: underline;}
</style>
  </head>
  <body style="background-color: rgb(255, 255, 255); color: rgb(0, 0,
    0);" bgcolor="#FFFFFF" text="#000000">
    Hi Brandon,<br>
    <br>
    A nice example with NULL as usage. :-)  Missed that one in thinking.<br>
    <br>
    > ... is letting the programmer do what they need to do with a
    minimum of fuss or extra work ...<br>
    But doesn't the need of mixing Maybe and Either cause more work for
    the programmer? Programmer of library, or programmer using the
    library?<br>
    <br>
    I'll take a look at <tt>Control.Error</tt> package that seems to
    simplify mixing.<br>
    <br>
    <br>
    Thanks all you guys for your thoughts!<br>
    <br>
    <br>
    vlatko<br>
    <br>
    <blockquote style="border-left: 2px solid #330033 !important;
      border-right: 2px solid #330033 !important; padding: 0px 15px 0px
      15px; margin: 8px 2px;"
cite="mid:CAKFCL4Ur+nK1fD5EmJZ4orJmxd1+PLpAu44oJf_sheEBhAXuaQ@mail.gmail.com"
      type="cite"><!--[if !IE]><DIV style="border-left: 2px solid #330033; border-right: 2px solid #330033;  padding: 0px 15px; margin: 2px 0px;"><![endif]--><span
        style="color:#000000;" class="headerSpan">
        <div class="moz-cite-prefix">-------- Original Message --------<br>
          Subject: Re: [Haskell-cafe] Why Maybe exists if there is
          Either?<br>
          From: Brandon Allbery <a class="moz-txt-link-rfc2396E" href="mailto:allbery.b@gmail.com"><allbery.b@gmail.com></a><br>
          To: Vlatko Bašić <a class="moz-txt-link-rfc2396E" href="mailto:vlatko.basic@gmail.com"><vlatko.basic@gmail.com></a><br>
          Cc: Johannes Erber <a class="moz-txt-link-rfc2396E" href="mailto:Hannes_E@gmx.de"><Hannes_E@gmx.de></a>,
          <a class="moz-txt-link-rfc2396E" href="mailto:haskell-cafe@haskell.org">"haskell-cafe@haskell.org"</a> <a class="moz-txt-link-rfc2396E" href="mailto:haskell-cafe@haskell.org"><haskell-cafe@haskell.org></a><br>
          Date: 09.01.2014 16:35<br>
        </div>
        <br>
        <br>
      </span>
      <div dir="ltr">
        <div class="gmail_extra">
          <div class="gmail_quote">On Thu, Jan 9, 2014 at 10:26 AM,
            Vlatko Basic <span dir="ltr"><<a moz-do-not-send="true"
                href="mailto:vlatko.basic@gmail.com" target="_blank">vlatko.basic@gmail.com</a>></span>
            wrote:<br>
            <blockquote class="gmail_quote" style="margin:0 0 0
              .8ex;border-left:1px #ccc solid;padding-left:1ex">I put
              String because I'm currently thinking about error
              handling, and Left String is the usual way of reporting
              failure, and I see Maybe as a type for reporting errors,
              failures and similar.<br>
            </blockquote>
            <div><br>
            </div>
            <div>Actually, the fact that all you can convey is
              "something failed" makes Maybe not a good error reporting
              type. And this is fine; there is still the "no value"
              niche (Perl's undefined, SQL's NULL, etc.) --- and the
              evidence from C's NULL that an *out of band*
              representation is often a very good idea (and from
              IEEE754's NaN that multiple out of band values is often a
              very bad idea).</div>
            <div><br>
            </div>
            <div>Also, a point that seems to often be missed in
              considering what is "more important": ultimately, what is
              *most* important is letting the programmer do what they
              need to do with a minimum of fuss or extra work.
              Predefining very useful stuff like Maybe which could be
              reinvented on the fly based on Either is about minimizing
              even the trivial extra work. Pedagogy is only rarely a
              useful design goal.</div>
            <div><br>
            </div>
          </div>
          -- <br>
          <div dir="ltr">
            <div>brandon s allbery kf8nh                              
              sine nomine associates</div>
            <div><a moz-do-not-send="true"
                href="mailto:allbery.b@gmail.com" target="_blank">allbery.b@gmail.com</a>
                                               <a moz-do-not-send="true"
                href="mailto:ballbery@sinenomine.net" target="_blank">ballbery@sinenomine.net</a></div>
            <div>unix, openafs, kerberos, infrastructure, xmonad        <a
                moz-do-not-send="true" href="http://sinenomine.net"
                target="_blank">http://sinenomine.net</a></div>
          </div>
        </div>
      </div>
      <!--[if !IE]></DIV><![endif]--></blockquote>
    <br>
  </body>
</html>