                    (println "SelectionSet: " args)
                    [:selection-set args])
    :Selection (fn selection [& args]
-                (println "Selection: " args)
-                (into [:selection] args))
+                (let [props (into {} args)]
+                  (println "Selection: " props)
+                  [:selection props]))
    :Field (fn field [& args]
             (println "Field: " args)
             [:field (into {} args)])

(defn get-field-type-from-object-type
  "FIXME"
  [object-type field-selection]
  (println (format "get-field-type-from-object-type: object-type: %s, field-selection: %s." object-type field-selection))
  (let [object-name (get-selection-object-name field-selection)
        _ (println "object-name: " object-name)
        type (get-in object-type [:fields (keyword object-name) :type])]
    (if (map? type)
      type


(defn complete-value
  [field-type result sub-selection-set]
  (println "*** complete-value: ")
  (println "field-type: " field-type)
  (println "result: " result)
  (println "sub-selection-set: " sub-selection-set)
