<div dir="ltr"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="ltr"><div style="font-family:tahoma,sans-serif"><p>QUESTION 2: if my quick scan is correct, none of the papers
      mention the GHC technique of determining untouchability by
      assigning "levels" to type variables.  Is there any written paper
      (outside the GHC sources) that discusses type levels?</p>

</div><div style="font-family:tahoma,sans-serif">It is disgracefully undocumented, I'm afraid.  Sorry.  Didier Remy used similar ideas, in some INRIA papers I think.</div></div></blockquote><div><br></div><div>(I'm first answering now because I wasn't sure until this comment that it was the same concept of levels that I know of)</div><div><br></div><div>A couple of resources do exist for learning this idea. There's a quite accessible description of the basic idea in Peter Sestoft's book "Programming Language Concepts" from about ten years ago. A collection of fancier and more efficient versions are laid out by Oleg Kiselyov here: <a href="https://okmij.org/ftp/ML/generalization.html">https://okmij.org/ftp/ML/generalization.html</a> . A good source back to Remy is this one: <a href="https://hal.inria.fr/inria-00077006/document">https://hal.inria.fr/inria-00077006/document</a></div><div><br></div><div>/David</div></div></div>