'J  Safe-InferredNone:looks in Tests.hs for functions like prop_foo and returns 9 the list. Requires that Tests.hs be valid Haskell98. ,checks if function binding name starts with prop_ indicating # that it is a quickcheck property 9takes an HsDecl and returns the name of the declaration  Safe-Inferred      Safe-InferredNone Safe-Inferred Safe-Inferredan expression @the body is either a conditional block (shown depending on some P boolean value) or a literal expression (usually a variable inserted somewhere) C or, of course, verbatim content. These components can be chained. 9a config file is either just a normal file, to be passed  through unchanged, or else it'"s an annotated file with a header  and a body. 4 a proper AST for our config files, in other words.  primitives +!"#$%&'()*+,-./0123456789:; <=>?@ABCDEFG(!"#$%&'()*+,-./0123456789:; <=>?@ABCD! .-,+*)('&%$#"43210/76589;: >=<?@ABCDEFG Safe-InferredHIJKLHIJKLHIJKL  Safe-InferredMNOPMNOPMNOP NoneQRQRQR None STUVWXYZ[ STUVWXYZ[ STUVWXYZ[ None\Cthis parses a shell command. These are denoted by using := instead I of = for assignment. This is because backticks are a pain to parse, and . we prefer the built-in stringLiteral parser. ]HassignState parses an assignment. That is, an identifier, an equals (=) ! symbol, and then an expression. ^_`ab\]^_`ab\]^_`ab\]  Safe-Inferredc&unfortunately we need to override the instance Arbitrary [a] for strings dwe don'"t want newlines in our strings... efcdefcdefcdNoneghigghi Safe-InferredjjjNoneklmnopqrklmnopqrklmnopqrNones0Test-process a given file, and show the result. 9 Especially useful for testing in combination with GHCi. stuvstuvstuvNonewhere'<s quite a bit of logic: we want symlinks to be presented as I - such, but we would also like links pointing outside the repo to work. xyz{|}~wxyz{|}~wxyz{|}~w !""#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v wxyz{|}~ dotfs-0.1.1.3System.DotFS.Util.VersionSystem.DotFS.Test.UtilitySystem.DotFS.Util.OptionsSystem.DotFS.Util.DebugSystem.DotFS.Core.FuseTypesSystem.DotFS.Core.LexersSystem.DotFS.Core.Datatypes#System.DotFS.Core.ExpressionParsersSystem.DotFS.Core.HelperParsersSystem.DotFS.Core.Constants%System.DotFS.Core.ExpressionEvaluatorSystem.DotFS.Core.HeaderParserSystem.DotFS.Test.TestsSystem.DotFS.Test.UnitSystem.DotFS.Util.SanitySystem.DotFS.Core.BodyParserSystem.DotFS.Core.ParsersSystem.DotFS.Core.FSActionsversiontestsisPropdeclNamemkCheckmkChecksOptionsoptLogscriptdefaultOptionsoptions printSyms printHelp printVersiondebugDotFSdotfsEntryNamedotfsActualPathdotfsVirtualPath dotfsFileStat dotfsContents $fEqDotFS tagletterlanglex styleLangstyleLexDFSExprBodyElemConfigValueOpNotOrAndNEQGEQLEQGTOpLTOpEqDivMulSubAddBiOpUniOpIfSysPrimVarVerbRefCondBodyHeader AnnotatedVanillaVStringVBoolVInt MountpointDFSStateVarName VarParserConfC$fShowOp $fShowDFSExpr $fShowValueexprPtablefactorboolTermifTerm eatEverything many1Till includeState parseTestdotfsGetFileSystemStatsdirStateval execSystemparseUntilPromptevalUnievalBidoAdddoInt doIntBooldoBool shellCommandP assignStateheaderRecognisePheaderP assignmentP tagstyleP commentstyleP arbitraryStr arbitraryCharprop_parseExpr testExprPrunTests$fArbitraryValue$fArbitraryDFSExpr validateDirsbodyPblocksPblockPconditionalBlockP exprBlockP verbBlockPextractTagStartextractTagStoptestfileprocesspresent outputCommentdotfsReadSymbolicLink dirContents fileExists dirExists getGenStatsgetStats statIfExistsdotFSOps dotfsLookUpdotfsGetFileStat dotfsOpendotfsOpenDirectorydotfsReadDirectory dotfsRead