Skip to content
  • Joachim Breitner's avatar
    Allow Any as an argument type to foreign prim functions · e29001c9
    Joachim Breitner authored and Simon Marlow's avatar Simon Marlow committed
    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