   "env or workdir can be nil to signify inherit from parent process"
   ;  .waitFor
   [^String cmd 
-   ^{:tag "[Ljava.lang.String;"} env ;array of String 
+   ^{:tag "[Ljava.lang.String;"} env ;clojure type hint for java's array of String 
    ^File workdir]
   (let [^Runtime rt (Runtime/getRuntime)
         ^Process process (.exec rt cmd env workdir)]

    )
  )

(defn transform-flatfile-to-symlink [flat-file]
  (let [
        ^{:tag java.io.File} ffull (.getAbsoluteFile (clojure.java.io/as-file flat-file))
        ^String full-path (.getAbsolutePath ffull)
        zmap (parse-flatfile-wannabe-symlink full-path)
        ;TODO: handle case when symlink is invalid
        how-many-lines (get_lines_count zmap)
        ^String sym-to (get_points_to zmap)
        ]
    

    );let
  );defn

(def KEY_LinesCount :LinesCount)
(def KEY_PointsTo :PointsTo)

(defn parse-flatfile-wannabe-symlink 
  "ie. parses a file like this:
