Right now System.FilePath.Posix.splitExtension will treat any leading . in a path as an extension. This leads to some odd behaviour:
import System.FilePath.Posix
splitExtension "myrepo/.git"
-- returns ("myrepo/", ".git")
splitExtension "myrepo/.."
-- returns ("myrepo/.",".")
I'd expect for splitExtension to treat a file whose leading character is a . as a filename. This appears to be consistent across all functions that work on paths (takeBaseName, etc). Changing these would be a pretty big breaking change, but at the very least this should probably be mentioned in the docs.