                       ;;   :default (throw (ex-info (format "Unhandled type in type-resolver:%s" type) {:type type})))
                       )
         inner-type (:inner-type type)]
-    (when (not (contains? #{:LIST :NON_NULL} kind))
+    (when (not (#{:LIST :NON_NULL} kind))
       (assert type-name (format "type-name is null for type: %s." type))
       (assert kind (format "kind is nil for type: %s" type)))
-    (when (= :LIST kind)
+    (if (#{:LIST} kind)
       (assert inner-type (format "inner-type is nil for type: %s" type)))
     (assert (or type-name inner-type) (format "Both type-name and inner-type are nil for type:%s" type))
     (if (:required type)

        kind (type-kind (:type arg))
        inner-type (get-in arg [:type :inner-type])]
    (assert kind (format "argument kind is nil for: %s" arg))
    (when (= :LIST kind)
      (assert inner-type (format "inner-type is nil for type: %s" arg)))
    (assert (or type-name inner-type) (format "Both type-name and inner-type are nil for arg:%s" arg))
    (println "args-resolver: arg:" arg)
    {:name (:name arg)
     :description (:description arg)
     
     ;; defer resolving of type for argument
     :type-name type-name
     :kind kind
     :inner-type inner-type
     :required (:required arg)
     
     :defaultValue (:default-value arg)}))

                      (if (:tag type)
                        (case (:tag type)
                          :basic-type (:name type)
                          :list-type nil
                          (throw (ex-info (format "Unhandled type in type-resolver:%s" type) {:type type}))))
                      ;; (cond
                      ;;   (contains? #{:type-definition
