I think we need to decide how the further development of the FFI will proceed. Given that Version 1.0 of the Addendum is frozen, I am not in favour of changing the Addendum anytime soon and certainly not for small matters, such as a convenience function.
We might want to accumulate extra useful functions in the implementation in an *extra* module and once there is enough interesting functionality in there, we can start talking about Version 1.1 of the Addendum.
Does this sound like a sensible approach?
We certainly want to be able to add new stuff to the FFI over time. There are several ways we might do this: (1) Just extend the existing interfaces (don't change semantics of existing functions, though). (2) Add new modules only (not re-exported by Foreign) (3) Add new stuff to the hierarchical Foreign.XXX modules, but not the non-hierarchical variants (and Foreign keeps the same interface as the FFI spec). (4) Wait until we have versioned packages, and have separate ffi-1.0 and ffi-1.1 packages. I like (4) the best, but we can't do that yet - we know how to, but there's a fair bit of work to get there. Of the other options, I'm tempted by (1). (2) is unattractive because some of the new interfaces will morally belong in existing modules (eg. withArrayLength clearly belongs in Foreign.Marshal.Array). (3) is unattractive because the Foreign module overlaps, so we can't keep the hierarchical and non-hierarchical versions separate. (1) is unattractive because it might break code that works with the FFI 1.0 spec (unlikely, though). Cheers, Simon