eCommons

 

First-Class Phantom Types

dc.contributor.authorCheney, Jamesen_US
dc.contributor.authorHinze, Ralfen_US
dc.date.accessioned2007-04-04T19:20:53Z
dc.date.available2007-04-04T19:20:53Z
dc.date.issued2003-07-10en_US
dc.description.abstractClassical phantom types are datatypes in which type constraints are expressed using type variables that do not appear in the datatype cases themselves. They can be used to embed typed languages into Haskell or ML. However, while such encodings guarantee that only well-formed data can be constructed, they do not permit type-safe deconstruction without additional tagging and run-time checks. We introduce first-class phantom types, which make such constraints explicit via type equations. Examples of first-class phantom types include typed type representations and typed higher-order abstract syntax trees. These types can be used to support typed generic functions, dynamic typing, and staged compilation in higher-order, statically typed languages such as Haskell or Standard ML. In our system, type constraints can be equations between type constructors as well as type functions of higher-order kinds. We prove type soundness and decidability for a Haskell-like language extended by first-class phantom types.en_US
dc.format.extent361331 bytes
dc.format.mimetypeapplication/pdf
dc.identifier.citationhttp://techreports.library.cornell.edu:8081/Dienst/UI/1.0/Display/cul.cis/TR2003-1901en_US
dc.identifier.urihttps://hdl.handle.net/1813/5614
dc.language.isoen_USen_US
dc.publisherCornell Universityen_US
dc.subjectcomputer scienceen_US
dc.subjecttechnical reporten_US
dc.titleFirst-Class Phantom Typesen_US
dc.typetechnical reporten_US

Files

Original bundle
Now showing 1 - 1 of 1
Loading...
Thumbnail Image
Name:
TR2003-1901.pdf
Size:
352.86 KB
Format:
Adobe Portable Document Format