Îõ³h)m¤     0.1.1.0 Safe-Inferred"ãöŒ Safe-Inferred"ãö8snail!The initial character of any textsnail...snail...snail...snail...snail... Safe-Inferred"ãö¶snailTODO: ; is the error type but we should use an explicit error typesnail Megaparsec's < takes a prefix and skips lines that begin with that prefixsnail Megaparsec's 7 takes prefix and suffix and skips anything in betweensnail4Generate a parser for whitespace in a language with  and  snailParse a ! verbatim"snailParse an S-Expression#snailÔThe list of valid token characters, note that we allow invalid tokens at this point$snailAny !õ object that starts with an appropriately valid character. This could be an variable or function name. For example, hello. is a valid lexeme in the s-expression below. (hello) %snail1An escaped quote to support nesting `"` inside a  snailMatches any non-quote character snail7Matches a literal text and supports nested quotes, e.g.  ("hello"") &snail(Parse one of the possible structures in -. These are parsed recursively separated by  in  . snail Parse an  snailParse a valid snail file   Safe-Inferred"ãö3snailGiven a ', attempt to parse  from a file. Safe-Inferred"ãöb Safe-Inferred"ãö  (      !"#$%&'()*+,-./012$345snail-0.1.1.0-inplaceSnail.Characters Snail.LexerSnail.IO Snail.ToTextsnail Paths_snailSnailinitialCharacterspecialInitialCharacterpeculiarCharacterdigitCharacterspecialSubsequentCharacterparenthesisStartingCharacterSnailAstLexeme TextLiteral SExpressionnonQuoteCharacter textLiteral sExpressionsnailAst $fEqSnailAst$fShowSnailAst readSnailFile parseSnailtoTextversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDirParserbase Data.VoidVoidskipLineCommentskipBlockCommentspacessymbol text-2.0.2Data.Text.InternalTextparensvalidCharacterlexeme escapedQuoteleavesGHC.IOFilePath