(<span class="hljs-name"><span class="hljs-builtin-name">import</span></span> [java.lang.annotation Retention RetentionPolicy Target ElementType]
        [javax.xml.ws WebServiceRef WebServiceRefs])

(<span class="hljs-name">definterface</span> Foo (<span class="hljs-name">foo</span> []))

<span class="hljs-comment">;; annotation on type</span>
(<span class="hljs-name"><span class="hljs-builtin-name">deftype</span></span> <span class="hljs-comment">^{Deprecated true
           Retention RetentionPolicy/RUNTIME
           javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
           javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
           WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
                           (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
  Bar [<span class="hljs-comment">^int</span> a
       <span class="hljs-comment">;; on field</span>
       <span class="hljs-comment">^{:tag int
         Deprecated true
         Retention RetentionPolicy/RUNTIME
         javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
         javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
         WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
                         (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
       b]
  <span class="hljs-comment">;; on method</span>
  Foo (<span class="hljs-comment">^{Deprecated true
         Retention RetentionPolicy/RUNTIME
         javax.annotation.processing.SupportedOptions [<span class="hljs-string">"foo"</span> <span class="hljs-string">"bar"</span> <span class="hljs-string">"baz"</span>]
         javax.xml.ws.soap.Addressing {<span class="hljs-symbol">:enabled</span> <span class="hljs-literal">false</span> <span class="hljs-symbol">:required</span> <span class="hljs-literal">true</span>}
         WebServiceRefs [(<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"fred"</span> <span class="hljs-symbol">:type</span> String})
                         (<span class="hljs-name">WebServiceRef</span> {<span class="hljs-symbol">:name</span> <span class="hljs-string">"ethel"</span> <span class="hljs-symbol">:mappedName</span> <span class="hljs-string">"lucy"</span>})]}</span>
       foo [this] <span class="hljs-number">42</span>))

(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> Bar))
(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> (<span class="hljs-name">.getField</span> Bar <span class="hljs-string">"b"</span>)))
(<span class="hljs-name"><span class="hljs-builtin-name">seq</span></span> (<span class="hljs-name">.getAnnotations</span> (<span class="hljs-name">.getMethod</span> Bar <span class="hljs-string">"foo"</span> <span class="hljs-literal">nil</span>)))