Como vincular o arquivo de objeto personalizado à biblioteca Haskell?

Eu criei um pacote Haskell que faz chamadas de FFI para funções definidas no código CUDA. Gostaria de compilar o arquivo .cu para um arquivo de objeto (.o) durante a compilação do pacote e forçar o vinculador a vinculá-lo.

Até agora, tentei usar uma técnica encontradaessa questão. Eu personalizei o buildHook para:

executar nvccexecutar buildHook padrãocrie um arquivo de biblioteca AR com código compilado nvcc.

Setup.hs está disponívelaqui.

Esta solução tem uma grande desvantagem em restringir este pacote à vinculação estática. Embora o cabal produza uma biblioteca compartilhada, ele não funcionará porque não tem como resolver símbolos localizados no arquivo de objeto.

Existe uma maneira mais simples de vincular código personalizado durante a criação?