resxFileGroups :: [FilePath] -> [[(FilePath, TranslationLanguage)]]
resxFileGroups items =
  let mappedWithLanguage =
        map (\p ->
              let fl = resxFileLanguage p in
              (p, fl, stripLanguage fl p)) items in
  let compareOnBasePath (_, _, basePath1) (_, _, basePath2) =
        basePath1 == basePath2 in
  let withoutBasePath (p, lang, _) = (p, lang) in
  let grouped = groupBy compareOnBasePath mappedWithLanguage in
  map (map withoutBasePath) grouped
resxFileGroups :: [FilePath] -> [[(FilePath, TranslationLanguage)]]
resxFileGroups items =
  let mappedWithLanguage =
        map (\p ->
              let fl = resxFileLanguage p in
              (p, fl, stripLanguage fl p)) items in
  let compareOnBasePath (_, _, basePath1) (_, _, basePath2) =
        basePath1 == basePath2 in
  let withoutBasePath (p, lang, _) = (p, lang) in
  let grouped = groupBy compareOnBasePath mappedWithLanguage in
  map (map withoutBasePath) grouped
resxFileGroups items =
  let mappedWithLanguage =
        map (\p ->
              let fl = resxFileLanguage p in
              (p, fl, stripLanguage fl p)) items in
  let compareOnBasePath (_, _, basePath1) (_, _, basePath2) =
        basePath1 == basePath2 in
  let withoutBasePath (p, lang, _) = (p, lang) in
  let grouped = groupBy compareOnBasePath mappedWithLanguage in
  map (map withoutBasePath) grouped