-
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.
e29001c9