Something like:
Without the dependency information, peek and pokeTargetOptions were old versions compiled with the old enum with the extra member, calling LLVM_General_SetTargetOptionFlag which was working with the new. So you had out-of date Haskell code calling through FFI with out-of-sync enum values, setting N fields of a struct with N-1 fields. Hilarity ensued.