None !"(*+24;=HM For cases where you dont know during compile time what kind of path you will get, for instance when you are parsing a path from the command line A PathSegment is any single element of a path...i.e. the stuff between two '/' characters. Valid path segments cannot contain '/' or control characters. PathSegments are also semigroups to allow concatenating with prefixes/suffixes. Every   is a valid string Smart constructor for valid PathSegments. Valid path segments cannot contain front slashes or control characters. This function performs all the checks up front.Is the string non-empty?>Does the string contain forward slashes or control characters? jIf the string is a valid path segment, returns the string otherwise returns the original string unchangedsTakes in a string that is intended to represent a relative path or a root path down the filesystem tree splits on !sTakes in a string that is intended to represent a relative path or a root path down the filesystem tree splits on !sSmart constructor for directories. Valid directories must be valid PathSegments and also cannot be empty strings.)This function basically defines what the  ^ type is semantically. It is string like thing which you can safely create a path from. See  , gSmart constructor for files. Valid files must be valid PathSegments and also cannot be empty strings.7"#$%&'( )* WA function to handle the case where the some path segments contained invalid characters .The handler for when a Root filepath was found2The handler for when a Relative filepath was found+,-./01234567      *#"$('&% )* +,-./012345678      !"#$%&'()*+ ,-./0123456789:data-filepath-2.2.0.0 Data.FilePath WeakFilePathFilePathParseErrorFilePathFromRelativeRootPath DirectoryFile PathSegment segString mkPathSegmentfilePathParseError weakFilePath rootFromWeakrelativeFromWeakrootPath relativePathparseDirectory parseFilePath mkDirPath mkDirPathSeg mkFilePath mkFilePathSegdirnamebasename basenameSegshowpsegQdirpathQ filepathQeitherPathSegmentbaseGHC.Real/ WeakRelativeWeakRootInvalidPathSegments DirectoryPath RelativePathRootPath _segStringsegments tFilePath cRootPath cRelativePath cFilePathcDirectoryPath$fDataFilePath$fDataFilePath0$fDataFilePath1$fDataFilePath2$fShowFilePath $fEqFilePath$fSemigroupPathSegment