From: tichy
Subject: Q about types which are not classes.
Date: 
Message-ID: <drimef$sfu$1@nemesis.news.tpi.pl>
Hi.

I want to select (from package) all symbols which are names for
types but not for classes.

Example (sbcl):

;;; ----------------

  CL-USER> (let (result)
            (do-external-symbols (s "COMMON-LISP")
              (handler-case (when (nth-value 1 (subtypep t s))
                              (unless (find-class s nil)
                                (push s result)))
                (error () (values))))
            (format t "~{~&~A~}" (sort result #'string<)))
ARRAY-RANK
ARRAY-TOTAL-SIZE
ATOM
BASE-CHAR
BIT
BOOLEAN
CHAR-CODE
CHAR-INT
COMPILED-FUNCTION
EXTENDED-CHAR
FLOAT-DIGITS
FLOAT-RADIX
KEYWORD
LONG-FLOAT
NIL
PATHNAME-DEVICE
PATHNAME-DIRECTORY
PATHNAME-HOST
PATHNAME-NAME
PATHNAME-TYPE
PATHNAME-VERSION
SHORT-FLOAT
SIGNED-BYTE
STANDARD-CHAR
UNSIGNED-BYTE

;;; ----------------

Is there any better way ?

TIA, Szymon.