![](https://secure.gravatar.com/avatar/326b108ffcc42f27628703b0c11ed239.jpg?s=120&d=mm&r=g)
Hello, While building CFFI bindings for GLUT and using enums for defining bitfield masks, I came across this example: (defcenum display-mode (:rgb 0) (:rgba 0) (:index 1) (:single 0) (:double 2) (:accum 4) (:alpha 8) (:depth 16) (:stencil 32) (:multisample 128) (:stereo 256) (:luminance 512)) defcenum won't accept this because it contains duplicate values. This a misfeature introduced by myself that I forgot to fix and people have complained[1] about this before. Unless someone has any objections, I'll implement something like what CLISP has. But this makes me wonder if another abstraction, say DEFBITFIELD would be useful. Something like: (defbitfield name (0 sym1 sym2 ...) (1 sym3) (2 sym4) ...) Along with type translator on these types that would construct an integer from a list of these symbols and vice-versa. Any other suggestions before I push a patch with something like this? BTW, I silently pushed a patch that adds a new option to defcenum by allowing a base-type (when the default, :int, is not appropriate). [1] http://article.gmane.org/gmane.lisp.cffi.devel/26 -- Luís Oliveira http://student.dei.uc.pt/~lmoliv/ Equipa Portuguesa do Translation Project http://www.iro.umontreal.ca/translation/registry.cgi?team=pt