       turn-player-right
       mark-unknown-as-empty-at-player-left))
 
-(defn move-route-and-back [{:keys [forward backward]}]
-  (p :move-route-and-back
-     (-> (create-unsolved-labyrinth (longest forward backward))
-         (move-route forward)
-         turn-around-at-end-of-labyrinth
-         (move-route backward))))
+(defnp move-route-and-back [{:keys [forward backward]}]
+  (-> (create-unsolved-labyrinth (longest forward backward))
+      (move-route forward)
+      turn-around-at-end-of-labyrinth
+      (move-route backward)))
 
 (defn get-rooms [maze]
   (->> (get-cells-with-coordinates maze)

          (can-walk-west row column maze)  (bit-or 2r0100)
          (can-walk-east row column maze)  (bit-or 2r1000)))

(defn convert-labyrinth-to-solution-format [{:keys [maze] :as labyrinth}]
  (p :convert-labyrinth-to-solution-format
     (let [row-cells (vec (map :cells maze))
           rooms (get-rooms maze)]
       (map
        (fn [row-of-rooms]
          (->> row-of-rooms
               (map (partial encode-room row-cells))
               (map (partial format "%x"))
               s/join))
        rooms))))

(defn solve [line]
  (-> (parse-input line)

(comment

  (profile :info :whatever
           (solve-file "input-small-output.txt"
                       input-small))

  (profile :info :whatever
           (solve-file "input-large-output.txt"
                       input-large)))
