Just a single datapoint: this explanation started to lose me at "and a -> String. (In that last one, the type function is the arrow; Haskell would allow you to write it (->) a String. Also, (->)is the only type that HM specifically requires to exist.)" I don't understand what the arrow _is_, nor why HM requires it to exist. Googling didn't actually seem to help much, but that's likely because "it" has a name that I don't know.
You further lost me when you went on to write "sticking one or more "∀"s in front of a monotype". I don't know what an upside-down A is - I think I've read about these in various mathematical contexts, but I'm not sure if what I remember from those is the same as the meaning here, and the following paragraphs unfortunately didn't elucidate.
I really appreciate the effort you put into this. Hopefully someday I'll come back and be able to take those steps that I don't yet know enough to take now.
Just a single datapoint: this explanation started to lose me at "and
a -> String
. (In that last one, the type function is the arrow; Haskell would allow you to write it(->) a String
. Also,(->)
is the only type that HM specifically requires to exist.)" I don't understand what the arrow _is_, nor why HM requires it to exist. Googling didn't actually seem to help much, but that's likely because "it" has a name that I don't know.You further lost me when you went on to write "sticking one or more "∀"s in front of a monotype". I don't know what an upside-down A is - I think I've read about these in various mathematical contexts, but I'm not sure if what I remember from those is the same as the meaning here, and the following paragraphs unfortunately didn't elucidate.
I really appreciate the effort you put into this. Hopefully someday I'll come back and be able to take those steps that I don't yet know enough to take now.