Add alignment-restricted ForeignPtr allocation actions
Whilst GHC.ForeignPtr exports some actions to allocate buffers containing an element of some type, or of some specific byte-length efficiently, and there's an implementation of newAlignedPinnedByteArray# used internally, there's no way to request such buffer of a given size and at a given alignment.
The ability to enforce a specific alignment for some memory buffer is important e.g. when working with SIMD instructions (which is my original use-case). My attempts to work-around the lack of this function failed miserably (with a reproducible test-case) as mentioned in .