 
 (defn
   type
-  "Relation of non-expandable (i.e., project-defined) types known to the AspectJ weaver."
+  "Relation of non-expandable types known to the AspectJ weaver.
+   Instances of org.aspectj.weaver.ResolvedType."
   [?resolvedtype]
-  (fresh [?world ?map ?entry]
-       (weaverworld-typemap ?world ?map)
-       (contains ?map ?entry)
-       (equals ?resolvedtype (.getValue ?entry))))
+  (conda [(v+ ?resolvedtype)
+          (succeeds (instance? org.aspectj.weaver.ResolvedType ?resolvedtype))]
+         [(v- ?resolvedtype)
+          (fresh [?world ?map ?entry]
+                 (weaverworld-typemap ?world ?map)
+                 (contains ?map ?entry)
+                 (equals ?resolvedtype (.getValue ?entry)))]))
 
 
 (defn

    (equals ?kind (.getKind ?element))))

;note that these are not JVM signature strings, as produced for ResolvedType hierarchy
(defn
  element-signature
  "Relation between a ProgramElement and its signature string."
  [?element ?signature]

    (element ?element)
    (equals ?signature (.toSignatureString ?element))))

(defn-
  element-handle
  "Relation between a ProgramElement and its handle."
  [?element ?handle]
