 
 
 (defn is-compatible
+  "Checks if two edges are compatible.
+
+  For an ordering given as graph and two edges e1 and e2 this means that the
+  transitive closure of the graph with both edges added does not contain a
+  (non-trivial) cycle."
   [digraph e1 e2]
   (let [tc (transitive-closure
              (uber/add-directed-edges digraph e1 e2))]

                (not (lg/has-edge? tc (lg/dest e) (lg/src e)))))))

(defn tig
  [graph]
  (let [ccg (co-comparability (lg/nodes graph) #(lg/has-edge? graph %1 %2))
        tig-nodes (map edge->vec (lg/edges ccg))]

  (if (> i 1) (replicate-str (str s s) (/ i 2)) s))

(defn draw-ascii
  "Given coordinates in the form `[[e1 [x1 y1]] [e2 [x2 y2]] ...]`, prints
  the elements in the console."
  [coords]
  (let [x-step 2
        size (count coords)
