Hi,
the difference between type and class is, that type inspects the metadata
first for a :type keyword. This let's you bless data structures with a type
tag eg. for printing or multimethod dispatching. This predates records and
protocols. It is used in pr, which triggers the exception while pr
;; run the following code that creates namespace blech where (ns ...)
includes metadata
;; both cases compile without error
;; case 1: when metadata entry :type "test" is included (the-ns 'blech)
works
;; case 2: when metadata entry :type :test is included (the-ns 'blech)
triggers the exception: