 (declare execute-fields)
 
 (defn complete-value
-  [context type-meta-fn field-type result sub-selection-set fragments]
+  [context schema resolver-fn field-type result sub-selection-set fragments]
   (log/debug "*** complete-value: context: " context)
   (log/debug "field-type: " field-type)
   (log/debug "result: " result)


(defn get-field-type-from-object-type
  "FIXME"
  [type-meta-fn object-type field-selection]
  (log/debug (format "get-field-type-from-object-type: object-type: %s." object-type))
  (log/debug (format "get-field-type-from-object-type: field-selection: %s." field-selection))
  (let [field-name (get-selection-object-name field-selection)

        type (get-in object-type [:fields (keyword field-name) :type])]
    (cond
      (map? type) type
      (keyword? type) (type/get-type-in-schema type)
      (nil? type) (throw (ex-info (format "Cannot find field type (%s) in object(%s)." field-name object-type) {})))))

(defn resolve-field-on-object
  "FIXME"
  [context schema resolver-fn parent-object field-type inner-field-type field-entry]
  (let [field-name (get-selection-object-name field-entry)
        arguments (get-selection-arguments field-entry)
        resolve-fn (or (:resolve-fn field-type)
