     (runner data)))
 
 (defn- next-tbox-interpretation
-  "Defines a new interpretation on the defined concepts of tbox in
-  interpretation through an interpretation i of the defined concepts
-  of tbox."
+  "Defines a new interpretation function on the defined concepts of
+  tbox in interpretation through an interpretation i of the defined
+  concepts of tbox."
   [interpretation tbox i]
   (let [new-interpretation (extend-interpretation interpretation i)]
-    (into {} (for [[sym sym-def] (tbox-definition-map tbox)]
-               [sym (interpret new-interpretation (definition-expression sym-def))]))))
+    (reduce! (fn [map [sym sym-def]]
+               (assoc! map sym (interpret new-interpretation
+                                          (definition-expression sym-def))))
+             {}
+             (tbox-definition-map tbox))))
 
 (defn- constant-tbox-interpretation
-  "Returns an interpretation on the defined concepts of tbox,
+  "Returns an interpretation function on the defined concepts of tbox,
   constantly returning value."
   [tbox value]
-  (into {} (for [concept (defined-concepts tbox)]
-             [concept value])))
+  (map-by-fn (constantly value)
+             (defined-concepts tbox)))
 
 (defn gfp-model
   "Returns the gfp-model of tbox in interpretation."
   [tbox interpretation]
   (extend-interpretation
    interpretation
-   (fixed-point (fn [i] (next-tbox-interpretation interpretation tbox i))
+   (fixed-point (fn [i]
+                  (next-tbox-interpretation interpretation tbox i))
                 (constant-tbox-interpretation tbox
                                               (interpretation-base-set interpretation)))))
 

  [tbox interpretation]
  (extend-interpretation
   interpretation
   (fixed-point (fn [i] (next-tbox-interpretation interpretation tbox i))
                (constant-tbox-interpretation tbox #{}))))

;;;

  [interpretation dl-expression]
  ((compile-expression (if (dl-expression? dl-expression)
                        dl-expression
                        (make-dl-expression (interpretation-language interpretation)
                                            dl-expression)))
   interpretation))

(defmethod compile-expression ::base-case [dl-expression]
