@InProceedings{   Aiken+94,
  author        = {Alexander Aiken and Edward L. Wimmers and T. K. Lakshman},
  title         = {Soft Typing with Conditional Types},
  pages         = {163--173},
  booktitle     = {Conference Record of POPL '94: 21st ACM SIGPLAN-SIGACT
                  Symposium on Principles of Programming Languages},
  address       = {Portland, Oregon},
  year          = {1994},
  month         = jan,
  URL           = {http://http.cs.berkeley.edu/~aiken/ftp/popl94.ps},
  abstract      = {We present a simple and powerful type inference method for
                  dynamically typed languages where no type information is
                  supplied by the user. Type inference is reduced to the
                  problem of solvability of type inclusion constraints over a
                  rich type language that includes function types,
                  constructor types, union, intersection, and recursive
                  types, and conditional types. Conditional types enables us
                  to analyse control flow using type inference, thus
                  facilitating computation of accurate types. We demonstrate
                  the power and practicality of the method with examples and
                  performance results from an implementation.}
}

@article{fahndrich98partial,
    author = "Manuel F{\"a}hndrich and Jeffrey S. Foster and Zhendong Su and Alexander Aiken",
    title = "Partial online cycle elimination in inclusion constraint graphs",
    journal = "ACM SIG{\-}PLAN Notices",
    volume = "33",
    number = "5",
    isbn = "0-89791-987-4",
    pages = "85--96",
    year = "1998",
    url = "citeseer.nj.nec.com/ahndrich98partial.html" }

@InProceedings{fahndrich97mixedterms,
  author = {M. F\"ahndrich and A. Aiken},
  title = {Program Analysis using Mixed Term and Set Constraints},
  pages = {114--126},
  booktitle = {Proceedings of the 4th International Static Analysis Symposium},
  publisher = {Springer Verlag},
  series = lncs,
  publisher = sv,
  address = {Berlin},
  volume = {1302},
  year = {1997}
}

@book{ baadernipkow,
    author = "F. Baader and T. Nipkow",
    title  = "Term Rewriting and All That",
    publisher = "Cambridge University Press",
    address = "Cambridge, UK",
    year = "1998"
    }

@inproceedings{ gandhe96correcting,
    author    = "M. Gandhe and G. Venkatesh and A. Sanyal",
    title     = "Correcting Errors in the Curry System",
    booktitle = "Chandrum V. and Vinay, V. (Eds.): Proc. of 16th Conf. on Foundations
                 of Software Technology and Theoretical Computer Science, LNCS vol. 1180,
                 Springer-Verlag",
    pages     = "347--358",		 
    year      = "1996"
}    

@inproceedings{ duggan96science,
    author    = "D. Duggan and F. Bent",
    title     = "Explaining type inference",
    booktitle = "Science of Computer Programming 27", 
    pages     = "37--83",
    year      = "1996"
}

@incollection{ jun-explaining,
    author    = "Yang Jun",
    title     = "Explaining Type Errors by Finding the Sources of Type Conflicts",
    booktitle = "Trends in Functional Programming",
    editor    = "Greg Michaelson and Phil Trindler and Hans-Wolfgang Loidl",
    pages     = "58--66",
    publisher = "Intellect Books",
    year      = "2000"
}

@inproceedings { walz86maximum,
    author    = "J. A. Walz and G. F. Johnson",
    title     = "A maximum flow approach to anomaly isolation in unification-based incremental type inference",
    booktitle = "Conference Record of the 13th Annual ACM Symposium on Principles of Programming Languages",
    month     = "January",
    address   = "St. Petersburg, FL",
    pages     = "44--57",
    year      = "1986"
}

@manual { pierce98local,
    author    = "Benjamin C. Pierce and David N. Turner",
    title     = "Local Type Inference",
    address   = "Indiana University",
    month     = "November",
    year      = "1997",
    note      = "CSCI Technical Report 493"
}

@inproceedings{ damas82principal,
    author    = "L. Damas and R. Milner",
    title     = "Principal type schemes for functional programs",
    booktitle = "Principles of Programming Languages (POPL '82)",
    pages     = "207-212",
    year      = "1982"
}

@book{ corman90introduction,
    author    = "T. Corman and C. Leiserson and R. Rivest",
    title     = "Introduction to Algorithms",
    publisher = "MIT Press",
    year      = "1990"
}

@inproceedings{ beaven94explaining,
    author    = "M. Beaven and R. Stansifer",
    title     = "Explaining type errors in polymorphic languages",
    booktitle = "ACM Letters on Programming Languages",
    year      = "1993",
    volume    = "2",
    pages     = "17--30",
    month     = "December"
}

@inproceedings{ wand86finding,
    author    = "M. Wand",
    title     = "Finding the source of type errors",
    booktitle = "13th Annual ACM Symp. on Principles of Prog. Languages",
    month     = "January",
    pages     = "38--43",
    year      = "1986"
}

@article { milner78theory,
    author  = "Robin Milner",
    title   = "A Theory of Type Polymorphism in Programming",
    journal = "Journal of Computer and System Sciences",
    volume  = "17",
    pages   = "348--375",
    year    = "1978"
}

@inproceedings { cartwright91soft,
    author    = "R. Cartwright and M. Fagan",
    title     = "Soft typing",
    booktitle = "Proceedings of the {SIGPLAN} '91 Conference on Programming Language Design and Implementation (PLDI '91)",
    url       = "ftp://cs.rice.edu/public/languages/pldi91-sf.ps.Z",
    pages     = "278--292",
    year      = "1991"
}

@inproceedings{ jones99typing,
    author    = "M. Jones",
    title     = "Typing Haskell in Haskell",
    booktitle = "Haskell Workshop",
    month     = "September",
    year      = "1999"
}

@misc{ jones-first-class,
    author = "M. Jones",
    title = "First-class polymorphism with type inference",
    text = "Mark P. Jones. First-class polymorphism with type inference. In Jones [17],
      pages 483--496."
}

@inproceedings{ jones97type,
    author    = "S. Jones and M. Jones and E. Meijer",
    month     = "June",
    title     = "Type classes: an exploration of the design space",
    booktitle = "Haskell Workshop",
    year      = "1997"
}

@techreport{ foster97flowinsensitive,
    author = "Jeffrey S. Foster and Manuel Fahndrich and Alexander Aiken",
    title = "Flow-Insensitive Points-to Analysis with Term and Set Constraints",
    number = "CSD-97-964",
    month = "5,",
    pages = "19",
    year = "1997",
    url = "citeseer.nj.nec.com/foster97flowinsensitive.html" }
    

@inproceedings{ aiken98toolkit,
    author    = "A. Aiken and M. Fahndrich and J. Foster and Z. Su",
    title     = "A Toolkit for Constructing Type- and Constraint-Based Program Analyses",
    booktitle = "Proceedings of the second International Workshop on Types in Compilation",
    month     = "March",    
    year      = "1998",
    address   = "Kyoto, Japan",
}

@inproceedings { aiken99introduction,
    author    = "A. Aiken",
    title     = "Introduction to set constraint-based program analysis",
    booktitle = "Science of Computer Programming, 35(1)",
    pages     = "79--111",
    year      = "1999"
}

@inproceedings { aiken95constraint-based,
    author    = "A. Aiken and N. Heintze",
    title     = "Constraint-based program analysis",  
    booktitle = "POPL'95 Tutorial",
    month     = "January",
    year      = "1995",
}

@inproceedings{McAdamIFL98,
title     = "{On the Unification of Substitutions in Type Inference}",
author    = "Bruce J. McAdam",
editor    = "Kevin Hammond and Anthony J.T. Davie and Chris Clack",
publisher = "Springer-Verlag",
booktitle = "Implementation of Functional Languages (IFL~'98), London, UK",
series    = "LNCS",
volume    = "1595",
month     = "September",
year      = "1998",
pages     = "139--154"
}

@InProceedings{mcadam99,
  author    = {Bruce J. McAdam},
  title     = {Generalising Techniques for Type Explanation},
  booktitle = {Scottish Functional Programming Workshop},
  year      = {1999},
  pages     = {243--252},
  note      = {Heriot-Watt Department of Computing and Electrical Engineering Technical Report RM/99/9}
}
@incollection{ mcadam00generalising, author = "B. McAdam", title = "Generalising Techniques for Type Debugging", booktitle = "Trends in Functional Programming", editor = "Phil Trinder and Greg Michaelson and Hans-Wolfgang Loidl", pages = "49--57", publisher = "Intellect Books", month = "March", year = "2000" }
@manual{ gaster96polymporphic,
    author  = "B. Gaster and M. Jones",
    title   = "A Polymporphic Type System for Extensible Records and Variants",
    address = "University of Nottingham, Nottingham NG7 2RD, UK",	    
    month   = "March",
    year    = "1996",
    note    = "Technical Report NOTTCS-TR-96-3"
}

@TechReport{ bernstein-debugging,
    author  = "Karen Bernstein",
    title   = "Debugging Type Errors (Full version)",
    institution = "State University of New York at Stony Brook",
    month   = "November",
    year    = "1995",
    note    = "Technical Report"
}

@InProceedings{ duggan98correct,
    author    = "D. Duggan",
    title     = "Correct type explanation",
    booktitle = "Workshop on ML: ACM SIGPLAN, 1998",
    pages     = "49--58",    
    year      = "1998"
}

@inproceedings{asian2000,
  author    = "Oukseh Lee and Kwangkeun Yi",
  title     = "A Generalization of Hybrid Let-Polymorphic Type Inference Algorithms",
  booktitle = "Proceedings of the First Asian Workshop on Programming Languages and Systems",
  pages     = "79--88",
  address   = "National university of Singapore, Singapore",
  month     = "December",
  year      = "2000"
}

@article{toplas1998,
  author  = "Oukseh Lee and Kwangkeun Yi",
  title   = "Proofs about a Folklore Let-Polymorphic Type Inference Algorithm",
  journal = "ACM Transanctions on Programming Languages and Systems",
  volume  = "20",
  number  = "4",
  pages   = "707--723",
  month   = "July",
  year    = "1998"
}

@phdthesis{sulzmann2000,
author       = "Martin Sulzmann",
title        = "A General Framework for {H}indley/{M}ilner Type Systems with Constraints",
school       = "Yale University, Department of Computer Science",
year         = "2000",
month        = "May"
}

@TechReport{sulzmann:hm-in-constraint-form,
  author      = "Martin Sulzmann and Martin M{\"u}ller and Christoph Zenger",
  title       = "Hindley/Milner style type systems in constraint form",
  institution = "University of South Australia, School of Computer and Information Science",
  year        = 1999,
  type        = "Research Report",
  number      = "ACRC--99--009",
  month       = "July"
}

@TechReport{sulzmann-odersky-wehr:tr-type-inference,
  author      =  "Martin Sulzmann and Martin Odersky and Martin Wehr",
  title       =  "Type {I}nference with {C}onstrained {T}ypes",
  institution =  "Yale University, Department of Computer Science",
  year        =  1997,
  folder      =  "13-23",
  type        =  "Research Report",
  number      =  "YALEU/DCS/RR-1129",
  month       =  "April",
  abstract    =  "In this paper we present a general framework HM(X) for
                  Hindley/Milner style type systems with constraints. HM(X) stays in the tradition of the
                  Hindley/Milner type system.
                  Type systems in HM(X) are sound under a standard untyped compositional semantics that guarantees the
                  slogan `well--typed programs can not go wrong'.
                  Furthermore, we can give a generic type inference algorithm for HM(X). 
                  Under sufficient conditions on X, type inference will always compute the principal
                  type of a term. 
                  An instance of our framework which deals with polymorphic records is discussed.
                  Also, we give a subtyping extension SHM(X) of our HM(X) system.
                  In particular, the type inference algorithm for subtypes computes principal types.
                  Simplification of the constraints inferred by the type inference algorithm is
                  discussed for HM(X) and SHM(X)."
}

@techreport{tr2000a,
  author      = "Oukseh Lee and Kwangkeun Yi",
  title       = "A Generalized Let-Polymorphic Type Inference Algorithm",
  type        = "Technical Memorandum",
  number      = "ROPAS-2000-5",
  institution = "Research on Program Analysis System, Korea Advanced Institute of Science and Technology",
  month       = "March",
  year        = "2000"
}

@misc{ cardelli97type,
    author = "L. Cardelli",
    title = "Type Systems",
    text = "L. Cardelli, Type Systems, Handbook of Computer Science and Engineering,
      Chapter 103, CRC Press, 1997.",
    year = "1997"
}

@misc{ jones95simplifying,
    author = "M. Jones",
    title = "Simplifying and improving qualified types",
    text = "M. P. Jones. Simplifying and improving qualified types. In International
      Conference on Functional Programming Languages and Computer Architecture,
      pages 160--169, June 1995.",
    year = "1995"
}

@inproceedings{cousot77,
        author    = {Cousot, P{.} and Cousot, R{.}},
        title     = {Abstract interpretation: a unified lattice model for static 
                     analysis of programs by construction or approximation of 
                     fixpoints},
        pages     = {238--252},
        booktitle = {Conference Record of the Fourth Annual ACM SIGPLAN-SIGACT 
                     Symposium on Principles of Programming Languages},
        address   = {Los Angeles, California},
        publisher = {ACM Press, New York, NY},
        year      = 1977,
     }

@InCollection{jonesnielson94,
  semno     =    "D-58",
  author    =    "Jones, Neil D. and Nielson, Flemming",
  title     =    "Abstract Interpretation: a Semantics-Based Tool for
                 Program Analysis",
  booktitle =    "Handbook of Logic in Computer Science",
  publisher =    "Oxford University Press",
  year      =    "1994",
  note      =    "527--629",
  summary   =    "This is a broad overview of Abstract Interpretation,
                 to be a large chapter (around 100 pages) in the
                 above-mentioned handbook. It consists of three main
                 parts: an Introduction with motivation and Descriptions
                 of the main methods used in the field; a mathematical
                 development of the logical relations approach with
                 several applications; and short descriptions of a broad
                 spectrum of Semantics-Based Program Analyses.",
  keywords  =    "abstract interpretation, flow analysis, static program
                 analysis",
}

@misc{ sabelfeld-forwards,
    author = "A. Sabelfeld and V. Sabelfeld",
    title = "Forwards and backwards analysis for functional programs",
    text = "A. Sabelfeld, V. Sabelfeld. Forwards and backwards analysis for functional
      programs. http://www.cs.chalmers.se/~andrei/wm98.ps.gz
      Andrei Sabelfeld and Viktor Sabelfeld: Forwards and backwards analysis for functional programs. Proceedings of the WM98, Sm?gens Havsbad, Sweden,
     January 14-16, 1998, P. 77-90. ",
    url = "citeseer.nj.nec.com/48133.html"
}

@misc{ huch00typeview,
    author = "F. Huch and O. Chitil and A. Simon",
    title = "Typeview: a tool for understanding type errors",
    text = "Huch, F., Chitil, O. and Simon, A. Typeview: a tool for understanding type
      errors. In Proceedings of 12th International Workshop on Implementation
      of Functional Languages, M. Mohnen and P. Koopman (eds), Aachner Informatik-Berichte,
      63--69, 2000.",
    year = "2000"
}

@article{ flanagan96catching,
    author  = "Cormac Flanagan and Matthew Flatt and Shriram Krishnamurthi and Stephanie Weirich and Matthias Felleisen",
    title   = "Catching Bugs in the Web of Program Invariants",
    journal = "ACM SIG{\-}PLAN Notices",
    volume  = "31",
    number  = "5",
    pages   = "23--32",
    year    = "1996"
}

@incollection{ nikhil85practical,
    author    = "R. S. Nikhil",
    title     = "Practical Polymorphism",
    booktitle = "Functional Programming Languages and Computer Architecture",
    publisher = "Springer-Verlag",
    address   = "Berlin, DE",
    editor    = "J.-P. Jouannaud",
    isbn      = "3-540-15975-4",
    pages     = "319--333",
    year      = "1985"
}

@misc{ yang00how,
  author = "J. Yang and G. Michaelson and P. Trinder",
  title = "How do people check polymorphic types",
  text = "Yang, J., Michaelson, G. and Trinder, P. How do people check polymorphic
    types? In A.F. Blackwell and E. Bilotta, editors, Twelfth Annual Meeting
    of the Psychology of Programming Interest Group Proceedings, pages 67--77,
    Cosenza, Italy, April 2000. Memoria.",
  year = "2000" }

@misc{ yang00helping,
  author = "J. Yang and G. Michaelson and P. Trinder",
  title = "Helping Students Understand Polymorphic Type Errors",
  text = "Yang, J., Michaelson, G. and Trinder, P. Helping Students Understand Polymorphic
    Type Errors. 1 st Annual Conference of the LSTN Centre for Information and
    Computer Sciences, S. Alexander et al (Editors), LTSN-ICS, University of
    Ulster, pp11-19, August 2000",
  year = "2000" }

@incollection{ dinesh98slicingbased,
    author    = "T. B. Dinesh and Frank Tip",
    title     = "A slicing-based approach for locating type errors",
    booktitle = "264",
    month     = "31",
    publisher = "Centrum voor Wiskunde en Informatica (CWI)",
    address   = "ISSN 1386-369X",
    pages     = "24",
    year      = "1998"
}

@misc{ choppella-diagnosis,
    author = "Venkatesh Choppella",
    title = "Diagnosis of Ill-typed Programs",
    url = "http://citeseer.nj.nec.com/choppella95diagnosis.html",
    note = "\\ http://citeseer.nj.nec.com/choppella95diagnosis.html",
    year  = "1995"
}

@misc{ aditya91incremental,
  author = "S. Aditya and R. Nikhil",
  title = "Incremental polymorphism",
  text = "Shail Aditya and Rishiyur Nikhil. Incremental polymorphism. In Functional
    Programming Languages and Computer Architecture, volume 523 of Lecture Notes
    in Computer Science, pages 379--405. Springer-Verlag, 1991.",
  year = "1991" }

@techreport{ plevyak93incremental,
    author = "John Plevyak and Andrew A. Chien",
    title  = "Incremental inference of concrete types",
    number = "UIUCDCS-R-93-1829",
    year   = "1993"
}

@misc{ jim96what,
  author = "T. Jim",
  title = "What are principal typings and what are they good",
  text = "Trevor Jim. What are principal typings and what are they good for? In Conf.
    Record of POPL'96: the 23rd ACM SIGPLAN-SIGACT Symposium on Principles of
    Programming Languages, pages 42-53, 1996.",
  year = "1996" }

 @inproceedings{ millerCIDtype,
    author = "Terrence C. Miller",
    title  = "Type Checking in an Imperfect World",
    pages  = "237--243",
    text   = "POPL'79"
}

@incollection{ cox84finding,
    author    = "Philip T. Cox",
    title     = "Finding Backtrack Points for Intelligent Backtracking",
    booktitle = "Implementations of Prolog",
    pages     = "216-233",
    year      = "1984"
}

@inproceedings{ graeme88simple,
    author    = "Port, Graeme S.",
    title     = "A Simple Approach to Finding the Cause of Non-Unifiability",
    booktitle = "Proceedings of the Fifth International Conference and Symposium on Logic Programming",
    publisher = "The MIT Press",
    address   = "Seatle",
    editor    = "Kowalski, Robert A. and Bowen, Kenneth A.",
    pages     = "651--665",
    year      = "1988"
}

@misc{ type9696,
  author = "A. Type and i equational and T. Report and R. LIX and P. Palaiseau and
    F. September",
  text = "Andrew J. Kennedy. Type inference and equational theories. Technical Report
    LIX/RR/96/09, LIX, Ecole Polytechnique, 91128 Palaiseau Cedex, France, September
    1996.",
  year = "1996" }

@misc{ lasser87unification,
  author = "J. Lasser and M. Maher and K. Marriot",
  title = "Unification revisited",
  text = "J.-L.Lasser, M.J.Maher and K.Marriot. Unification revisited. In: Foundations
    of Deductive Databases and Logic Programming J.Minker (Ed.), Morgan Kauffman,
    pp.587-626, 1987.",
  year = "1987" }

@article{ aiken99optimal,
   author  = "Alexander Aiken and Edward L. Wimmers and Jens Palsberg",
   title   = "Optimal Representations of Polymorphic Types with Subtyping",
   journal = "Higher-Order and Symbolic Computation",
   volume  = "12",
   number  = "3",
   pages   = "237--282",
   year    = "1999"
}

@misc{ aiken93type,
  author = "A. Aiken and E. Wimmers",
  title = "Type inclusion constraints and type inference",
  text = "Alexander Aiken and Edward L. Wimmers. Type inclusion constraints and type
    inference. In Proceedings of Functional Programming Languages and Computer
    Architecture, pages 31--41, 1993.",
  year = "1993" }

@misc{ trifonov96third,
  author = "V. Trifonov and S. Smith and C. Types",
  title = "Third International Static Analysis Symposium",
  text = "V. Trifonov, S. Smith. Subtyping Constrained Types. Third International
    Static Analysis Symposium. Lecture Notes in Computer Science 1145 (1996)
    349--365",
  year = "1996" }

@book{ mitchell96foundations,
    author = "John C. Mitchell",
    title = "Foundations for Programming Languages",
    publisher = "MIT Press",
    address = "Cambridge, MA",
    isbn = "0-262-13321-0",
    year = "1996"
}

@inproceedings 
  { chitilcomp,
    author = "Olaf Chitil" ,
    title  = "Compositional explanation of types and algorithmic debugging of type errors",
    booktitle = "Proceedings of the Sixth ACM SIGPLAN International Conference on Functional Programming (ICFP'01)",  
    pages = "193--204",
    month = "September",
    year = "2001"
  }

@inproceedings{ mitchellfoundations,
    author    = "Bruce McAdam",
    title     = "How to repair type errors automatically",
    booktitle = "3rd Scottish Workshop on Functional Programming",
    month     = "August",
    year      = "2001"
}