     [ length ] [ >uint-array underlying>> ] bi glDrawBuffers ;
 
 MACRO: set-draw-buffers ( buffers -- )
-    words>values [ (set-draw-buffers) ] curry ;
+    words>values '[ _ (set-draw-buffers) ] ;
 
 : do-attribs ( bits quot -- )
     swap glPushAttrib call glPopAttrib ; inline

: gl-look-at ( eye focus up -- )
    [ first3 ] tri@ gluLookAt ;

: make-texture ( dim pixmap type -- id )
    [ gen-texture ] 3dip swap '[
        GL_TEXTURE_BIT [
            GL_TEXTURE_2D swap glBindTexture
            GL_TEXTURE_2D
            0
            GL_RGBA
            _ first2
            0
            _
            GL_UNSIGNED_BYTE
            _
            glTexImage2D
        ] do-attribs
    ] keep ;

    [ glDisableClientState ] each ; inline

MACRO: all-enabled ( seq quot -- )
    [ words>values ] dip '[ _ _ (all-enabled) ] ;

MACRO: all-enabled-client-state ( seq quot -- )
    [ words>values ] dip '[ _ (all-enabled-client-state) ] ;

: do-matrix ( mode quot -- )
    swap [ glMatrixMode glPushMatrix call ] keep
