+#+lispworks ;; with LW, deref is a character
+(defmacro ensure-char-character (obj)
+ obj
+ )
+
+#+(or allegro cmu)
+(defmacro ensure-char-character (obj)
+ `(code-char ,obj)
+ )
+
+#+lispworks
+(defmacro ensure-char-integer (obj)
+ `(char-code ,obj))
+
+#+(or allegro cmu)
+(defmacro ensure-char-integer (obj)
+ obj
+ ) ;; (* :char) dereference is already an integer
+