Please describe the problem.

The removal of some imports causes Utility.Url.Parse to fail to build on Windows.

What steps will reproduce the problem?

stack --stack-yaml stack-lts-18.13.yaml setup && stack --stack-yaml stack-lts-18.13.yaml build

Observe the following output:

[...]
C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-230817-83056e7b5\Utility\Terminal.hs:43:41: warning: [-Wunused-matches]
    Defined but not used: b'
   |
43 |                                         b' <- isMinTTYHandle h'
   |                                         ^^
[106 of 689] Compiling Utility.ThreadLock
[107 of 689] Compiling Utility.ThreadScheduler
[108 of 689] Compiling Utility.TimeStamp
[109 of 689] Compiling Annex.VectorClock.Utility
[110 of 689] Compiling Utility.Tmp
[111 of 689] Compiling Utility.MoveFile
[112 of 689] Compiling Utility.Tmp.Dir
[113 of 689] Compiling Utility.Touch
[114 of 689] Compiling Utility.Tuple
[115 of 689] Compiling Utility.Scheduled
[116 of 689] Compiling Utility.Scheduled.QuickCheck
[117 of 689] Compiling Utility.Url.Parse

C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-230817-83056e7b5\Utility\Url\Parse.hs:34:19: error:
    Variable not in scope: isPrefixOf :: t0 -> String -> Bool
   |
34 |         | "file:" `isPrefixOf` s = do
   |                   ^^^^^^^^^^^^

Error: [S-7282]
       Stack failed to execute the build plan.

       While executing the build plan, Stack encountered the error:

       [S-7011]
       While building package git-annex-10.20230802 (scroll up to its section to see the error)
       using:
       C:\Users\jkniiv\Projektit\git-annex.branchable.com\git-annex--BUILD-230817-83056e7b5\.stack-work\dist\274b403a\setup\setup --verbose=1 --builddir=.stack-work\dist\274b403a build exe:git-annex --ghc-options ""
       Process exited with code: ExitFailure 1

# End of transcript or log.

What version of git-annex are you using? On what operating system?

git-annex version: 10.20230803-g83056e7b53
build flags: Assistant Webapp Pairing TorrentParser Benchmark Feeds Testsuite S3 WebDAV
dependency versions: aws-0.22 bloomfilter-2.0.1.0 cryptonite-0.29 DAV-1.3.4 feed-1.3.2.0 ghc-8.10.7 http-client-0.7.9 persistent-sqlite-2.13.0.3 torrent-10000.1.1 uuid-1.3.15 yesod-1.6.1.2
key/value backends: SHA256E SHA256 SHA512E SHA512 SHA224E SHA224 SHA384E SHA384 SHA3_256E SHA3_256 SHA3_512E SHA3_512 SHA3_224E SHA3_224 SHA3_384E SHA3_384 SKEIN256E SKEIN256 SKEIN512E SKEIN512 BLAKE2B256E BLAKE2B256 BLAKE2B512E BLAKE2B512 BLAKE2B160E BLAKE2B160 BLAKE2B224E BLAKE2B224 BLAKE2B384E BLAKE2B384 BLAKE2BP512E BLAKE2BP512 BLAKE2S256E BLAKE2S256 BLAKE2S160E BLAKE2S160 BLAKE2S224E BLAKE2S224 BLAKE2SP256E BLAKE2SP256 BLAKE2SP224E BLAKE2SP224 SHA1E SHA1 MD5E MD5 WORM URL X*
remote types: git gcrypt p2p S3 bup directory rsync web bittorrent webdav adb tahoe glacier ddar git-lfs httpalso borg hook external
operating system: mingw32 x86_64
supported repository versions: 8 9 10
upgrade supported from repository versions: 2 3 4 5 6 7 8 9 10

A successful build that passes the testsuite on Windows is achieved with the patch below.

Windows 10 version 22H2 (build 19045.3324), 64 bit.

Please provide any additional information below.

Apply the following patch to build on Windows:

diff --git a/Utility/Url/Parse.hs b/Utility/Url/Parse.hs
index 7fc952b034..ab456ed31e 100644
--- a/Utility/Url/Parse.hs
+++ b/Utility/Url/Parse.hs
@@ -18,6 +18,7 @@ module Utility.Url.Parse (

 import Network.URI
 #ifdef mingw32_HOST_OS
+import Common
 import qualified System.FilePath.Windows as PW
 #endif

Have you had any luck using git-annex before? (Sometimes we get tired of reading bug reports all day and a lil' positive end note does wonders)

Sure, Git Annex is great as always. I use it several times a week with my multigigabyte backups, where it gives structure to my image-based backup routines, so you could say I'm a believer. :)

fixed, thank you! --Joey