Yep, it is just hard coded, but to be fair there have been very few new Accelerate backends. It does pull in extra dependencies though, if you forget to add the appropriate `-f-X` flag.

The type class approach you mention sounds like how the LLVM-based packages are architected.

-Trev


On Fri, 31 Mar 2017 at 20:46 Henning Thielemann <googlegroups@henning-thielemann.de> wrote:

On Fri, 31 Mar 2017, Trevor McDonell wrote:

>   * accelerate-fft: FFI bindings to discrete Fourier transforms (FFTW and cuFFT)
>     (https://hackage.haskell.org/package/accelerate-fft)

I was curious how you solved the problem of addressing target specific
implementations of functions like the FFT. Looking at the source code it
looks like you have hard-coded a selection of back-ends. I hoped that we
would be able to specify back-end capabilities via a type-class. This way
the user could add more back-ends with their respective FFT
implementations. Maybe that's stuff to be defered to Accelerate-2.0. :-)