
Hello Simon and Ian, Perhaps either of you may be able to answer this question easily: I am testing the replacement Integer library in Haskell and I wanted to copy arrays between the two--I can't do all of that in Haskell because the RTS allocation has a maximum alignment of 4 when I need 16 (sometimes--I might also realign things, as a last resort). In any case, the easy way to do it would be to grab the ByteArray# from the Integer (J# Int# ByteArray#), grab the Addr# with the primitive byteArrayContents#, turn that into a pointer and pass it to the foreign function. That would be a sketchy move--even for testing-- because Integer ByteArrays are local (not pinned). Do you think doing a performGC just before grabbing the Addr# would help? There doesn't seem to be another primitive for marshalling a pointer from a ByteArray. Cheers, Peter Tanski