In recent years, languages like Haskell have seen a dramatic surge of new features that significantly extends the expressive power of their type systems. With these features, the challenge of kind inference for datatype declarations has presented itself and become a worthy research problem on its own.
This paper studies kind inference for datatypes. Inspired by previous research on type-inference, we offer declarative specifications for what datatype declarations should be accepted, both for Haskell98 and for a more advanced system we call PolyKinds, based on the extensions in modern Haskell, including a limited form of dependent types. We believe these formulations to be novel and without precedent, even for Haskell98. These specifications are complemented with implementable algorithmic versions. We study soundness, completeness and the existence of principal kinds in these systems, proving the properties where they hold. This work can serve as a guide both to language designers who wish to formalize their datatype declarations and also to implementors keen to have principled inference of principal types.
Conference DayFri 24 JanDisplayed time zone: Saskatchewan, Central America change
10:30 - 11:35
|Kind Inference for DatatypesDistinguished Paper|
Ningning XieThe University of Hong Kong, Richard A. EisenbergBryn Mawr College, USA, Bruno C. d. S. OliveiraThe University of Hong Kong, Hong KongLink to publication DOI Media Attached
|Partial Type Constructors: Or, Making Ad Hoc Datatypes Less Ad Hoc|
Mark JonesPortland State University, J. Garrett MorrisUniversity of Kansas, USA, Richard A. EisenbergBryn Mawr College, USALink to publication DOI Media Attached File Attached
|Pointer Life Cycle Types for Lock-Free Data Structures with Memory Reclamation|
Research PapersLink to publication DOI Media Attached File Attached