BEGIN:VCALENDAR
VERSION:2.0
PRODID:-//Talks.cam//talks.cam.ac.uk//
X-WR-CALNAME:Talks.cam
BEGIN:VEVENT
SUMMARY:Haskelly things - Richard Eisenberg (Bryn Mawr College)
DTSTART:20191108T130000Z
DTEND:20191108T140000Z
UID:TALK133354@talks.cam.ac.uk
CONTACT:Jean Pichon-Pharabod
DESCRIPTION:Since the dawn of time\, typed functional languages have assum
 ed that type constructors are *total*. That is\, if I have a `List a`\, we
  understand that to mean that I can have lists of any type I can imagine. 
 However\, what if I want a *partial* type constructor? For example\, if I 
 have a datatype that describes binary search trees\, that type makes sense
  only with elements that have an ordering. Or maybe I have a type that has
  an optimized representation\, but only for certain types like Int and Flo
 at. Many other examples are out there! This talk will present a design for
  a type system that supports *partial type constructors*\, realized throug
 h constraints\, much like how Haskell supports ad-hoc polymorphism through
  constraints. Our approach simplifies code that works over partial types a
 nd allows better static detection of non-sensical types. This work has bee
 n conditionally accepted to be presented at POPL 2020.
LOCATION:FW26
END:VEVENT
END:VCALENDAR
