[PL-sem-jr] papers on intersection types

Felix S Klock pnkfelix at ccs.neu.edu
Thu Mar 17 13:01:23 EST 2005


PL Jr Squad-

Your mission, if you choose to accept it, is to skim over the following  
papers and read the last one.

"Intersection Type Assignment Systems" -- Steffen van Bakel
http://www.doc.ic.ac.uk/~svb/Research/Papers/TCS95.pdf
"Lambda Calculi with Types" -- Henk Barendregt
ftp://ftp.cs.ru.nl/pub/CompMath.Found/HBK.ps

These papers were the source for my initial overview of the Torino  
systems.  Barendregt's presentation is great, but he only presents his  
one system.  van Bakel's is readable, but perhaps only after you've  
grokked Barendregt.

"What are principal typings and what are they good for?" -- Trevor Jim
http://www.church-project.org/reports/Jim:MIT-LCS-1995-532.html

This (of course) is the source for the discussion about Principal Types  
versus Principal Typings.  Go here to actually see the subtyping and  
type-derivation rules for P_2 (Jim's system of Rank-2 Intersection  
Types for typing ML programs), and more concrete explanations of how  
one can use Principal Typings for effectively typing REC expressions,  
LETREC expressions, code entered at the repl, code in separate modules  
without type annotations, etc.

"Design of the Programming Language Forsythe" -- John C. Reynolds
ftp://reports.adm.cs.cmu.edu/usr/anon/1996/CMU-CS-96-146.ps.gz

Self explanatory.  See some real wild ideas on how to do things  
differently in a language.  (I actually like the hack of adopting  
intersection types for records, but I'm not as big a fan of the other  
conflations of intersection types).

"Intersection Types and Computational Effects" -- Rowan Davies, Frank  
Pfenning
http://www.cs.cmu.edu/~rwh/courses/refinements/papers/DaviesPfenning00/ 
icfp00.pdf

I didn't present this paper, but its worth reading.  Essentially its  
about how to combine intersection types and ref types (mutable cells).   
  Interestingly, they get around the semi-obvious soundness issues with  
adding mutation by adopting the same solution that Wright and Felleisen  
proposed: put a value restriction on the expressions that can be  
assigned an intersection type.

The paper is both extremely well written and full of content.  One  
issue I have with it is that the authors say that their system lacks  
principal types (and do not mention principal typings); this seems odd  
and I can't find more discussion of why.  But maybe its obvious once  
you look at it carefully.

-Felix

----
"Damn, my wife was right.  White people really
do have ventriloquist dummies"  -www.redmeat.com




More information about the Pl-sem-jr mailing list