ffi & recursive data types