Deprecated: The each() function is deprecated. This message will be suppressed on further calls in /home/zhenxiangba/zhenxiangba.com/public_html/phproxy-improved-master/index.php on line 456 Simon Peyton Jones: papers
System F with Type Equality Coercions
Martin Sulzmann, Manuel Chakravarty, and Simon Peyton Jones.
Submitted to POPL 2007, July 2007.
We introduce a variant of System F that uses a single mechanism to enable
the type preserving translation of generalised abstract data types
(GADTs), type classes with associated types and functional dependencies, as
well as closed type functions. The core idea is to pass around explicit
evidence for type equalities, just like System F passes types explicitly.
We use this evidence to justify type casts encoding non-syntactic type
equalities induced by the mentioned source language features. In
particular, we don't need special typing rules for pattern matching on
GADTs, we can easily combine GADTs with type classes, and we can relax
restrictions on programs involving associated types or functional
dependencies.