<html>
  <head>
    <meta content="text/html; charset=ISO-8859-1"
      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 bgcolor="#FFFFFF" text="#000000">
    Hi Kim-Ee,<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:CAPY+ZdSPxTugbWFHzBTmTGmyi1hpAQ99PAKp0KdM6wp6QcLi-g@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"></div>
      </span>So whereas the thing in question (whatever's denoted by
      'a') is called a type 'variable', it doesn't 'vary' in (I'm
      guessing) the OO way. <br>
      <div dir="ltr">
        <div class="gmail_extra">
          <br>
          When checking the types in your function, 'a' is fixed, i.e.
          made rigid, by what's known as a 'universal quantification'.
          So when you code up the type checking algorithm, you'd see a
          crystal-clear similarity to treating 'a' as if it were a
          monotype like Bool or String.<br>
          <br>
        </div>
      </div>
      <!--[if !IE]></DIV><![endif]--></blockquote>
    Exactly the point where I made the wrong turn in thinking. Unlike in
    OO, I think I can imagine that compiler creates new function for
    every 'a' type that is used, and check for that (mono)type. That's
    the difference in static type checking.<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:CAPY+ZdSPxTugbWFHzBTmTGmyi1hpAQ99PAKp0KdM6wp6QcLi-g@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]-->
      <div dir="ltr">Overall, I think you're doing really well for
        someone groping with Haskell general and its type system in
        particular. The lingo can be misleading.<br>
        <div class="gmail_extra"><br>
        </div>
      </div>
      <!--[if !IE]></DIV><![endif]--></blockquote>
    Just when I got the feeling I'm getting somewhere with my Haskell
    skills, you're telling me I'm groping. :-)<br>
    I think you're probably right. I was so amazed with the language
    that I went coding as soon as possible, and in the way missed some
    theoretical background. <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:CAPY+ZdSPxTugbWFHzBTmTGmyi1hpAQ99PAKp0KdM6wp6QcLi-g@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]-->
      <div dir="ltr">
        <div class="gmail_extra">
          Personally, I think a lot can be made to fill the gap between
          trial-and-discovery and reading notationally-heavy formal
          texts like conf papers and textbooks (Pierce's TAPL).<br>
        </div>
        <div class="gmail_extra"><br clear="all">
        </div>
      </div>
      <!--[if !IE]></DIV><![endif]--></blockquote>
    Indeed, and I have read a lot. But one first has to understand the
    problem, to understand the solution. Maybe it's time for a re-read.<br>
    <br>
    <br>
    vlatko<br>
  </body>
</html>