<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>