\relax \citation{Nels91} \citation{ElSt90} \citation{MaSc92a} \citation{AGO94} \citation{BlHu90,Bruc94,Bruc95a,AbCa95} \citation{BCC*95} \citation{MaSc92a} \citation{Atki96} \citation{Card89,CaLo91} \citation{PiTu93b} \citation{Meyer90} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {1}Introduction and Motivation}{2}} \citation{GoRo83} \citation{UnSm87} \citation{Hewi77} \citation{ChUn91,Hoel94,Gawe92a} \citation{GaMa96a} \citation{Gogu90} \citation{JoFo88} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {2}TooL Design Goals}{3}} \newlabel{Sec:Rationale}{{2}{3}} \citation{MTH90} \citation{MaSc92a} \citation{Hutc87} \citation{BNOW93} \citation{Mey89} \citation{CaLo91,Card93} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {3}TooL Syntax Overview}{5}} \newlabel{Sec:AST}{{3}{5}} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {1}{\ignorespaces The TooL abstract syntax}}{6}} \newlabel{Fig:AST}{{1}{6}} \citation{CMA94} \citation{Meyer90} \@writefile{lof}{\string\contentsline\space {figure}{\string\numberline\space {2}{\ignorespaces Overview of the TooL bulk type library}}{7}} \newlabel{Fig:TooLLibrary}{{2}{7}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {4}The TooL Bulk Type Library}{7}} \newlabel{Sec:Library}{{4}{7}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {5}Basic TooL Type Concepts}{8}} \newlabel{Sec:TypeConcepts}{{5}{8}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {5.1}Structural Subtyping}{8}} \citation{Bruc95a} \citation{BlHu90,Bruc94} \citation{CCHO89} \citation{Bruc95a} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {5.2}Type Matching}{9}} \newlabel{Sec:Matching}{{5.2}{9}} \citation{CMMS91} \citation{Card93} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {5.3}Type Quantification}{11}} \newlabel{Sec:Quantification}{{5.3}{11}} \newlabel{xple:set}{{5.3}{11}} \citation{BDG*88} \citation{Meye88} \citation{ElSt90} \citation{AGO94} \citation{Bruc95a} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {6}Inheritance}{12}} \newlabel{Sec:Inheritance}{{6}{12}} \citation{Bruc94} \citation{Bruc95a} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {6.1}Typing Self}{13}} \newlabel{Sec:Self}{{6.1}{13}} \@writefile{toc}{\string\contentsline\space {subsection}{\string\numberline\space {6.2}Enforcing the Self Constraint}{14}} \citation{ESTZ94} \newlabel{xple:BadColored}{{2}{15}} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {7}Reconciling Subtyping, Matching and Quantification}{15}} \newlabel{Sec:SubtypingAndMatching}{{7}{15}} \citation{BlHu90} \citation{AbCa95,Bruc95a} \citation{Bruc95a} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {8}Programming Experience}{17}} \newlabel{Sec:Experience}{{8}{17}} \citation{CCHO89} \citation{AbCa95} \citation{BlHu90} \citation{BlHu90} \citation{Bruc94} \citation{Bruc95a} \citation{Bruc95a} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {9}Related Work}{18}} \newlabel{Sec:RelatedWork}{{9}{18}} \citation{BrGr93} \citation{ESTZ94} \citation{Ghel91,Cast94,Cham92} \citation{ChLe94} \citation{BlHu90} \@writefile{toc}{\string\contentsline\space {section}{\string\numberline\space {10}Conclusion}{19}} \newlabel{Sec:Conclusion}{{10}{19}} \citation{Pier94} \bibstyle{enamed} \bibdata{../bib/agdef,../bib/ag} \bibcite{AbCa95}{\citeauthoryear {Abadi and Cardelli}{1995}} \bibcite{AGO94}{\citeauthoryear {Albano \bgroup \pem et al.\egroup }{1994}} \bibcite{Atki96}{\citeauthoryear {Atkinson}{1996}} \bibcite{BNOW93}{\citeauthoryear {Birell \bgroup \pem et al.\egroup }{1993}} \bibcite{BlHu90}{\citeauthoryear {Black and Hutchinson}{1990}} \bibcite{BDG*88}{\citeauthoryear {Bobrow \bgroup \pem et al.\egroup }{1988}} \bibcite{BrGr93}{\citeauthoryear {Bracha and Griswold}{1993}} \bibcite{BCC*95}{\citeauthoryear {Bruce \bgroup \pem et al.\egroup }{1995a}} \bibcite{Bruc95a}{\citeauthoryear {Bruce \bgroup \pem et al.\egroup }{1995b}} \bibcite{Bruc94}{\citeauthoryear {Bruce}{1994}} \bibcite{CCHO89}{\citeauthoryear {Canning \bgroup \pem et al.\egroup }{1989}} \bibcite{CaLo91}{\citeauthoryear {Cardelli and Longo}{1991}} \bibcite{CMMS91}{\citeauthoryear {Cardelli \bgroup \pem et al.\egroup }{1991}} \bibcite{CMA94}{\citeauthoryear {Cardelli \bgroup \pem et al.\egroup }{1994}} \bibcite{Card89}{\citeauthoryear {Cardelli}{1989}} \bibcite{Card93}{\citeauthoryear {Cardelli}{1993}} \bibcite{Cast94}{\citeauthoryear {Castagna}{1994}} \bibcite{ChLe94}{\citeauthoryear {Chambers and Leavens}{1994}} \bibcite{ChUn91}{\citeauthoryear {Chambers and Ungar}{1991}} \bibcite{Cham92}{\citeauthoryear {Chambers}{1993}} \bibcite{ESTZ94}{\citeauthoryear {Eifrig \bgroup \pem et al.\egroup }{1994}} \bibcite{ElSt90}{\citeauthoryear {Ellis and Stroustrup}{1990}} \bibcite{GaMa96a}{\citeauthoryear {Gawecki and Matthes}{1996}} \bibcite{Gawe92a}{\citeauthoryear {Gawecki}{1992}} \bibcite{Ghel91}{\citeauthoryear {Ghelli}{1991}} \bibcite{Gogu90}{\citeauthoryear {Goguen}{1990}} \bibcite{GoRo83}{\citeauthoryear {Goldberg and Robson}{1983}} \bibcite{Hewi77}{\citeauthoryear {Hewitt}{1977}} \bibcite{Hoel94}{\citeauthoryear {{H{\accent "7F o}lzle}}{1994}} \bibcite{Hutc87}{\citeauthoryear {Hutchinson}{1987}} \bibcite{JoFo88}{\citeauthoryear {Johnson and Foote}{1988}} \bibcite{MaSc92a}{\citeauthoryear {Matthes and Schmidt}{1992}} \bibcite{Meye88}{\citeauthoryear {Meyer}{1988}} \bibcite{Mey89}{\citeauthoryear {Meyer}{1989}} \bibcite{Meyer90}{\citeauthoryear {Meyer}{1990}} \bibcite{MTH90}{\citeauthoryear {Milner \bgroup \pem et al.\egroup }{1990}} \bibcite{Nels91}{\citeauthoryear {Nelson}{1991}} \bibcite{PiTu93b}{\citeauthoryear {Pierce and Turner}{1993}} \bibcite{Pier94}{\citeauthoryear {Pierce}{1994}} \bibcite{UnSm87}{\citeauthoryear {Ungar and Smith}{1987}}