Îõ³h) û      0.1.2.1 Safe-Inferred"ãö˜ Safe-Inferred"ãösnail-The bracket used to surround the s-expressionsnailÉUnwrap nested s-expressions, this is very useful when you are converting  to your own AST.ÍYou'll likely have a function `snailAstToMyAst :: SnailAst -> m MyAst` where m is ExceptT or  MonadExceptÖ. Then, your final case statement should unwrap nested expressions to their base with, ÄsnailAstToMyAst . unwrap . SExpression initialChar bracket $ unwrap  $ exprs` òFor example, `((read))` will become `SExpression _ _ [Lexeme (_, "read")]` which your AST converter should handle.   Safe-Inferred"ãö snail The valid character set of SnailsnailCharacters allowed in numberssnailSpecial initial characterssnail.Characters allowed in front of an s-expression   Safe-Inferred"Ôãö7 snailTODO: !; is the error type but we should use an explicit error type"snail Megaparsec's "< takes a prefix and skips lines that begin with that prefix#snail Megaparsec's #7 takes prefix and suffix and skips anything in between$snail4Generate a parser for whitespace in a language with " and #%snailParse a & verbatim'snail#Parse an S-Expression bracketed by (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 charactersnail7Matches 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"ãö¬snailGiven a +, attempt to parse  from a file. Safe-Inferred"ãöÛ Safe-Inferred"ãö  ,      !"#$%&'()*+,-./01234567*89:snail-0.1.2.1-inplace Snail.AstSnail.Characters Snail.LexerSnail.IO Snail.ToTextsnail Paths_snailSnailSnailAstLexeme TextLiteral SExpressionBracketRoundSquareCurlyunwrap $fEqSnailAst$fShowSnailAst $fShowBracket $fEqBracketvalidCharacterparenthesisStartingCharacternonQuoteCharacter textLiteral sExpressionsnailAst readSnailFile parseSnailtoTextversion getBinDir getLibDir getDynLibDir getDataDir getLibexecDirgetDataFileName getSysconfDirdigitCharacterspecialInitialCharacterParserbase Data.VoidVoidskipLineCommentskipBlockCommentspacessymbol text-2.0.2Data.Text.InternalTextbracketlexeme escapedQuoteleavesGHC.IOFilePath