Allow Any as an argument type to foreign prim functions
authorJoachim Breitner <mail@joachim-breitner.de>
Mon, 12 Mar 2012 08:20:12 +0000 (09:20 +0100)
committerSimon Marlow <marlowsd@gmail.com>
Wed, 14 Mar 2012 13:01:18 +0000 (13:01 +0000)
commite29001c9e0f73885c0b85d86c3a854519448013a
treeeec65332799de2023a3d342c2d3b84aed3ff2671
parente562e59a7662010202fafb2edbd34edcaa06e5d2
Allow Any as an argument type to foreign prim functions

Real primops can take boxed arguments, and the Cmm code will receive the
pointer to the object on the Haskell heap, e.g. for unpackClosure#. To
be able to implement such a function in a "foreign prim" call, this
needs to be allowed as well. By only allowing Any here (instead of
arbitrary types), it is clearer that the function will not receive the
value in any marshalled form, but just the raw pointer. Haskell code
using such functions are likely to use unsafeCoerce# to turn a haskell
value into a value of type Any.
compiler/typecheck/TcType.lhs