     (log/debug "field-type" field-type)
     (if (not (nil? field-type))
       (let [resolved-object (resolve-field-on-object parent-object field-type field-entry)
-            field-selection-set (get-field-selection-set field)]
-        (log/debug "get-field-entry: field-selection-set: " field-selection-set)
+            field-selection-set (get-field-selection-set field)
+            fields (collect-fields field-type field-selection-set fragments)]
+        (log/debug "get-field-entry: fields: " fields)
+        (log/debug "get-field-entry: resolved-object: " resolved-object)
         (if (nil? resolved-object)
           [response-key nil] ; If resolvedObject is null, return
                              ; tuple(responseKey, null), indicating
                              ; that an entry exists in the result map
                              ; whose value is null.
           (let [;; sub-selection-set (merge-selection-sets field-selection-set)
-                response-value (complete-value type-meta-fn field-type resolved-object field-selection-set)]
+                response-value (complete-value type-meta-fn field-type resolved-object fields fragments)]
             [response-key (log/spy response-value)])))
       (log/debug "WARNING: field-type is nil!"))))
 
 (defn execute-fields
-  [type-meta-fn parent-type root-value fields]
+  [type-meta-fn parent-type root-value fields fragments]
   (log/debug "*** execute-fields")
   (log/debug "execute-fields: parent-type: " parent-type)
   (log/debug "execute-fields: root-value: " root-value)

                  (let [response-key (get-selection-name field)
                        ;; field-type (get-field-type-from-object-type parent-type field)
                        ;; resolved-object (resolve-field-on-object field-type root-value field)
                        field-entry (get-field-entry type-meta-fn parent-type root-value field)]
                    (log/spy field-entry)))
                fields)))


(defn collect-fields
  "CollectFields(objectType, selectionSet, visitedFragments)"
  [object-type selection-set fragments]
  (log/debug "collect-fields: selection-set" selection-set)
  (log/spy (reduce (collect-selection-fn fragments) [] selection-set)))

(comment ; Type kind
  :SCALAR
