Typechecking for "foreign import prim"
authorDuncan Coutts <duncan@well-typed.com>
Tue, 9 Jun 2009 10:48:26 +0000 (10:48 +0000)
committerDuncan Coutts <duncan@well-typed.com>
Tue, 9 Jun 2009 10:48:26 +0000 (10:48 +0000)
commit2da37f4f15790377900fa6c38ff8fdcd394dfaa2
tree6c16408651530568d9f60fedae2aa67565850eda
parenta4005d2d0c18ffa72ba7bd0fa052666e70e8c16e
Typechecking for "foreign import prim"
The main restriction is that all args and results must be unboxed types.
In particular we allow unboxed tuple results (which is a primary
motivation for the whole feature). The normal rules apply about
"void rep" result types like State#. We only allow "prim" calling
convention for import, not export. The other forms of import, "dynamic",
"wrapper" and data label are banned as a conseqence of checking that the
imported name is a valid C string. We currently require prim imports to
be marked unsafe, though this is essentially arbitrary as the safety
information is unused.
compiler/typecheck/TcForeign.lhs
compiler/typecheck/TcType.lhs