another surprise found by Levente:
(typep (sb-pcl::class-prototype (class-of (lambda ()))) 'function) => T
but:
(defgeneric foo (f) (:method ((f function)) (print 42)))
(foo (sb-pcl::class-prototype (class-of (lambda ())))) => "The value #<FUNCTION {10014238B1}> is not of type FUNCTION."
this is another argument to signal error in class-prototype for types that can not provide a prototype without surprises.
another surprise found by Levente:
(typep (sb-pcl: :class- prototype (class-of (lambda ()))) 'function) => T
but:
(defgeneric foo (f)
(:method ((f function))
(print 42)))
(foo (sb-pcl: :class- prototype (class-of (lambda ())))) =>
"The value #<FUNCTION {10014238B1}> is not of type FUNCTION."
this is another argument to signal error in class-prototype for types that can not provide a prototype without surprises.