     } case ;
 
 : kernel-info-string ( handle name -- string )
-    [ clGetKernelInfo ] info-string ; inline
+    [ clGetKernelInfo ] info-string ;
 
 : kernel-info-uint ( handle name -- uint )
-    [ clGetKernelInfo ] info-uint ; inline
+    [ clGetKernelInfo ] info-uint ;
 
 : kernel-work-group-info-size_t ( handle1 handle2 name -- size_t )
-    [ clGetKernelWorkGroupInfo ] 2info-size_t ; inline
+    [ clGetKernelWorkGroupInfo ] 2info-size_t ;
 
 : event-info-uint ( handle name -- uint )
-    [ clGetEventInfo ] info-uint ; inline
+    [ clGetEventInfo ] info-uint ;
 
 : event-info-int ( handle name -- int )
-    [ clGetEventInfo ] info-int ; inline
+    [ clGetEventInfo ] info-int ;
 
 : cl_command_type>command-type ( cl_command-type -- command-type )
     {

    ] 2bi ; inline

: command-queue-info-ulong ( handle name -- ulong )
    [ clGetCommandQueueInfo ] info-ulong ; inline

: sampler-info-bool ( handle name -- ? )
    [ clGetSamplerInfo ] info-bool ; inline

: sampler-info-uint ( handle name -- uint )
    [ clGetSamplerInfo ] info-uint ; inline

: program-build-info-string ( program-handle device-handle name -- string )
    [ clGetProgramBuildInfo ] 2info-string ; inline

: program-build-log ( program-handle device-handle -- string )
    CL_PROGRAM_BUILD_LOG program-build-info-string ; inline

: strings>char*-array ( strings -- char*-array )
    [ ascii encode dup length dup malloc [ cl-not-null ]
      keep &free [ -rot memcpy ] keep ] void*-array{ } map-as ; inline

: (program) ( cl-context sources -- program-handle )
    [ handle>> ] dip [

    } case ; inline

: device-info-bool ( handle name -- ? )
    [ clGetDeviceInfo ] info-bool ;

: device-info-ulong ( handle name -- ulong )
    [ clGetDeviceInfo ] info-ulong ;

: device-info-uint ( handle name -- uint )
    [ clGetDeviceInfo ] info-uint ;

: device-info-string ( handle name -- string )
    [ clGetDeviceInfo ] info-string ;

: device-info-size_t ( handle name -- size_t )
    [ clGetDeviceInfo ] info-size_t ;

: device-info-size_t-array ( handle name -- size_t-array )
    [ clGetDeviceInfo ] info-size_t-array ;

: device-info ( device-id -- device )
    dup {
