(bind-func print
  (lambda (vbo:VBO*)
    (if (null? vbo)
        (printf "<VBO: 0x0>")
        (printf "<VBO: id=%d type=%s nbytes=%d data=%p elements=%ld stride=%ld>"
                (tref vbo 0)
                (let ((t (type vbo)))
                  (cond ((= t GL_BYTE) "byte")
                        ((= t GL_SHORT) "short")
                        ((= t GL_INT) "int")
                        ((= t GL_FLOAT) "float")
                        (else "unknown")))
                (tref vbo 2)
                (tref vbo 3)
                (tref vbo 4)
                (tref vbo 5)))
    void))