                          1))))))
     (subsolution (.length s1) (.length s2))))
 
-(defn- ^Long hamming-distance [s1 s2]
+(defn- hamming-distance [s1 s2]
   (+
    (reduce + (map #(if (= %1 %2) 0 1) s1 s2))
    (- (max (.length s1) (.length s2))

(defn ^String center
  "Pad both ends of s with padding, or spaces, until the length of s
  matches width."
  ([^CharSequence s ^Long width]
   (center s width " "))
  ([^CharSequence s ^Long width ^CharSequence padding]
   {:pre [(not-empty padding)
          (not (nil? s))]
    :post [(= (.length %) width)]}

(defn ^String pad-left
  "Pad the beginning of s with padding, or spaces, until the length of
  s matches width."
  ([^CharSequence s ^long width]
   (pad-left s width " "))
  ([^CharSequence s ^long width ^CharSequence padding]
   {:pre [(not-empty padding)
          (not (nil? s))]
    :post [(= (.length %) width)]}
