| Abstract | OO 
      languages such as Java or Smalltalk, and typed functional languages such 
      as Haskell or ML, have historically formed two distinct streams in programming 
      language design. So far, this gap has been best bridged by languages such 
      as Common Lisp and Dylan, which use multimethods and generic functions to 
      hybridize the OO and functional worlds. However, these languages have been 
      dynamically typed, and in this talk I introduce Needle, which attempts to 
      practically extend HM type inference to a language with generic functions 
      and inheritance. |