    (get-in word '(:english))
 
    (= true (get-in word '(:hidden)))
-;;   "Ø"
+   ;;   "Ø"
    ""
+
    (and
     (= true (get-in word '(:a :hidden)))
     (= true (get-in word '(:b :hidden))))
-;;   "Ø"
+   ;;   "Ø"
    ""
+
    (= true (get-in word '(:a :hidden)))
    (get-string (get-in word '(:b)))
 

                      :b (get-in word '(:b :b))}})
   (and
    (get-in word '(:a))
    (get-in word '(:b))
    (string? (get-in word '(:a)))
    (string? (get-in word '(:b))))
   (join " "
         (list (get-in word '(:a))
               (get-in word '(:b))))

   (and
    (get-in word '(:a))
    (get-in word '(:b)))
   (join " "
         (list (fo (get-in word '(:a)))
               (fo (get-in word '(:b)))))

   ;; TODO: this seems wrong: how could :infl == :english?
   (and (= :english (get-in word '(:infl)))

   (and (map? input)
        (get-in input [:english]))
   (get-string input)

   (or (seq? input)
       (vector? input))
