     [ glDisableClientState ] each ; inline
 
 MACRO: all-enabled ( seq quot -- )
-    [ words>values ] dip [ (all-enabled) ] 2curry ;
+    [ words>values ] dip '[ _ _ (all-enabled) ] ;
 
 MACRO: all-enabled-client-state ( seq quot -- )
-    [ words>values ] dip [ (all-enabled-client-state) ] 2curry ;
+    [ words>values ] dip '[ _ (all-enabled-client-state) ] ;
 
 : do-matrix ( mode quot -- )
     swap [ glMatrixMode glPushMatrix call ] keep

    [ length ] [ >uint-array underlying>> ] bi glDrawBuffers ;

MACRO: set-draw-buffers ( buffers -- )
    words>values [ (set-draw-buffers) ] curry ;

: do-attribs ( bits quot -- )
    swap glPushAttrib call glPopAttrib ; inline

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

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