         (equals ?values (.getValues ?bcel))))
 
 
-;todo: also support AnnotationElementValue, ArrayElementValue, EnumElementValue
+;todo: also support AnnotationElementValue, EnumElementValue
 (defprotocol IBCelToWeaver
-  (toweavervalue [bcel world] ))
+  (toweavervalue [bcel world]))
 
 (extend-type ElementValue IBCelToWeaver
   (toweavervalue [bcel world]


(defn
  method
  "Relation of method members known to the weaver."
  [?method]
  (fresh [?type]
         (type-method ?type ?method)))



(clojure.core/declare type-pointcutdefinition)



(defn-
  annotated-annotations
  [?target ?annos]
  (all
    (v+ ?target)
    (equals ?annos (.getAnnotations ?target))))


(clojure.core/declare annotation)

(defn-
  annotated-annotation
  [?target ?anno]
  (fresh [?annos]
         (annotated-annotations ?target ?annos)
         (contains ?annos ?anno)
         (annotation ?anno) ;to ensure only those of which the type is exposed to the weaver are returned
         ))

(defn
  type-annotation
  "Relation between a type declarations and its annotation instances."
  [?type ?annotation]
  (all
    (type|reference ?type)
    (annotated-annotation ?type ?annotation)))

(defn
  annotation
