TLDI: Types In Languages Design And Implementation