If we ever want to use Haskell to write a shared object/library that is meant to be consumed by another language (like C or something that also has FFI). Then we can use the foreign-library feature of Cabal.
The feature is explained here: https://www.haskell.org/cabal/users-guide/developing-packages.html#foreign-libraries
And there's a tutorial about it: https://qnikst.github.io/posts/2018-05-02-cabal-foreign-library.html
However hpack currently doesn't support it yet: sol/hpack#258
This may be useful for cases like using Haskell code within a kernel module.