annotateDirectory :: (Apply p, ApplyState p ~ Tree)
                  => D.DiffAlgorithm
                  -> FL (PatchInfoAnd p) wX wY
                  -> FileName
                  -> [FileName]
                  -> AnnotateResult
annotateDirectory da patches inipath inicontent = annotated $ annotate' patches initial
  where
    initial = Annotated { path = Just inipath
                        , currentInfo = error "There is no currentInfo."
                        , current = zip [0..] (map fn2ps inicontent)
                        , what = Directory
                        , annotated = V.replicate (length inicontent) (Nothing, B.empty)
                        , diffAlgorithm = da
                        }
annotateDirectory :: (Apply p, ApplyState p ~ Tree)
                  => D.DiffAlgorithm
                  -> FL (PatchInfoAnd p) wX wY
                  -> FileName
                  -> [FileName]
                  -> AnnotateResult
annotateDirectory da patches inipath inicontent = annotated $ annotate' patches initial
  where
    initial = Annotated { path = Just inipath
                        , currentInfo = error "There is no currentInfo."
                        , current = zip [0..] (map fn2ps inicontent)
                        , what = Directory
                        , annotated = V.replicate (length inicontent) (Nothing, B.empty)
                        , diffAlgorithm = da
                        }
annotateDirectory da patches inipath inicontent = annotated $ annotate' patches initial
  where
    initial = Annotated { path = Just inipath
                        , currentInfo = error "There is no currentInfo."
                        , current = zip [0..] (map fn2ps inicontent)
                        , what = Directory
                        , annotated = V.replicate (length inicontent) (Nothing, B.empty)
                        , diffAlgorithm = da
                        }