separate element and pattern ffi struct definitions