   CLMem -> IO CLint
 foreign import CALLCONV "clReleaseMemObject" raw_clReleaseMemObject :: 
   CLMem -> IO CLint
---foreign import CALLCONV "clGetSupportedImageFormats" raw_clGetSupportedImageFormats :: 
---  CLContext -> CLMemFlags_ -> CLMemObjectType_ -> CLuint -> CLImageFormat_p 
---  -> Ptr CLuint -> IO CLint
+foreign import CALLCONV "clGetSupportedImageFormats" raw_clGetSupportedImageFormats :: 
+  CLContext -> CLMemFlags_ -> CLMemObjectType_ -> CLuint -> CLImageFormat_p 
+  -> Ptr CLuint -> IO CLint
 foreign import CALLCONV "clGetMemObjectInfo" raw_clGetMemObjectInfo :: 
   CLMem -> CLMemInfo_ -> CSize -> Ptr () -> Ptr CSize -> IO CLint
 --foreign import CALLCONV "clGetImageInfo" raw_clGetImageInfo :: 

      cid = fromIntegral idepth
      cirp = fromIntegral irp
      cisp = fromIntegral isp  
#c
enum CLMemInfo {
  cL_MEM_TYPE=CL_MEM_TYPE,

  clGetMemFlags, clGetMemSize, clGetMemHostPtr, clGetMemMapCount, 
  clGetMemReferenceCount, clGetMemContext,
  -- * Image Functions
  clCreateImage2D, clCreateImage3D, clGetSupportedImageFormats,
  -- * Sampler Functions
  clCreateSampler, clRetainSampler, clReleaseSampler, clGetSamplerReferenceCount, 
  clGetSamplerContext, clGetSamplerAddressingMode, clGetSamplerFilterMode, 
