The design of Composable OpenCL 3'rd Party Library Standard

The OpenCL Community, including the OpenCL Khronos Commitee has to deal with the very problematic issue of composable OpenCL libraries. We need to have a standard of composing our code using different OpenCL Libraries vendors. As for today, each library needs to develop its own notion of how users may call it. We need to find a solution in the spirit of C Language ABI. In ‘C’, each library provider, provides a header file and a set of static or shared libraries and we are done. In the near future we will see more and more OpenCL libraries for scientific computing like OpenCV, ViennaCL, Linear Algebra CL, FFT CL, and etcetera but how do we use them, how do we execute them? We do not want to call a ‘C’ api, we want to be able to schedule the kernel execution by ourselves, we want to be able to set the library context and command queue objects.

Is there a FFT CL library available now?