         types ((type-system-type-definitions :type) definitions)
         interfaces ((type-system-type-definitions :interface) definitions)
         unions ((type-system-type-definitions :union) definitions)
-        inputs ((type-system-type-definitions :input) definitions)]
+        inputs ((type-system-type-definitions :input) definitions)
+        enums ((type-system-type-definitions :enum) definitions)]
     (println types)
     {:types (into {} types)
      :interfaces (into {} interfaces)
      :unions (into {} unions)
-     :inputs (into {} inputs)}))
+     :inputs (into {} inputs)
+     :enums (into {} enums)}))
 
 
 

        type-fields (:type-fields definition)
        fields (create-type-system-fields type-fields)]
    [name {:name name
           :kind :OBJECT
           :fields fields}]))

(defn create-type-system-union [definition]
  (let [name (:name definition)
        fields (:type-fields definition)]
    [name {:name name
           :kind :OBJECT
           :fields fields}]))

(defn create-type-system-interface [definition]

        type-fields (:type-fields definition)
        fields (create-type-system-fields type-fields)]
    [name {:name name
           :kind :INTERFACE
           :fields fields}]))

(defn create-type-system-enum [definition]
  (let [name (:name definition)
        enum-fields (:enum-fields definition)
        fields (create-type-system-fields enum-fields)]
    [name {:name name
           :kind :ENUM
           :fields (create-type-system-fields enum-fields)}]))

(defn create-type-system-definition [definition]
  (let [type (:type-system-type definition)]
