h)-*)j      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijk l m n o p q r s t u v w x y z { | } ~                         1.6.0.2 Data Type  , Internal Safe-Inferred$ "#%&()-13<=?gexon0An intermediate representation for internal use.Internal Safe-Inferred$ "#%&()-13<=?exon/The combined segments, either empty or a value.   Data Type  Safe-Inferred$ "#%&()-13<=?exonThe parts of an interpolation quasiquote. Text is split at each whitespace and interpolation splice marked by #{ and }.Internal Safe-Inferred$ "#%&()-13<=?8'exon Plain field(exonRecord selector)exon Constructor () in a data type () that's a newtype ('True)*exon Plain field+exonRecord selector  !"# #"! Internal Safe-Inferred$ "#%&()-13<=? h-exonThis class determines how an expression is converted to an interpolation quote's result type.For a quote like [exon|a #{exp :: T} c|] :: R, the instance  ToSegment T R is used to turn T into R. Aside from specialized instances for stringly types, the default implementation uses  to unwrap newtypes that either match the result type exactly, or uses ! for result types that implement . So given:-newtype T = T Text deriving newtype (Generic)newtype R = R Text deriving newtype (IsString, Semigroup, Monoid)0the quote from earlier would generically unwrap T and use  to construct an R.-./012120/-.Internal Safe-Inferred$ "#%&()-13<=? -;exonInternal auxiliary class that applies a function to the value inside of a nested chain of  newtypes.(The method only passes its arguments to <1, but the class hides the intermediate parameter.=exonInternal auxiliary class that applies a function to the value inside of a nested chain of  newtypes.;<=>=>;<Internal Safe-Inferred$ "#%&()-13<=?Bexon,This class is the main entry point for Exon.3The default instance unwraps all newtypes that are " and passes the innermost type to D.1The original type is also used as a parameter to D', so customizations can be based on it.CexonConcatenate a list of s.DexonThis class implements the  concatenation logic. Each % is converted to the builder type by I using Q/ to construct the builder from expressions.The segments are folded over F.The result is converted from the builder type to the original type by P.Each step may be overridden individually by writing overlapping instances for the involved classes.EexonConcatenate a list of s.FexonThis class handles concatenation of segments, which might be a builder or the result type.!The default instance simply uses -, and there is only one special instance for  -> , the type used by .Gexon-Concatenate two segments of the builder type.Hexon2Concatenate a list of segments of the result type.Folds the list over G, skipping over  segments.?A possible overload may implement lookahead to skip whitespace.IexonThis class converts a  to a builder.The default implementation performs the following conversions for the different segment variants: 'Segment.String'Segment.String and  'Segment.Whitespace'Segment.Whitespace are plain s parsed literally from the quasiquote. They are converted to the builder type by  (handled by M). 'Segment.Whitespace'Segment.Whitespace is ignored when the quoter ! was used (default behaviour of M). 'Segment.Expression'Segment.Expression contains a value of the unwrapped type and is converted to a builder using the function in the first argument, which is usually Q, supplied by E.Jexon3Convert literal string segments to the result type.KexonThis class allows manipulation of interpolated expressions before they are processed, for example to replace empty strings with 4 for the purpose of collapsing multiple whitespaces."The default instance does nothing.LexonProcess a builder value constructed from an expression before concatenation.MexonThis class generalizes  for use in I.When a plain text segment (not interpolated) is processed, it is converted to the result type, which usually happens via .For the type of  ( -> ), there is no instance of , so this class provides an instance that works around that by calling .Nexon Convert a  to the builder type.Oexon Convert a  containing whitespace to the builder type. This is only used by whitespace-aware quoters, like  or .Pexon-This class converts a segment into a builder.A builder is an auxiliary data type that may improve performance when concatenating segments, like >. The default instance uses no builder and is implemented as .Qexon;Construct a builder from the newtype-unwrapped result type.RexonConvert the result of the builder concatenation back to the newtype-unwrapped result type.Sexon'Wrapping a quote type with this causes a to be used irrespective of whether it is an unwrappable newtype.VexonCall C, but unwrap the arguments and rewrap the result using the supplied functions.]exon"The instance for the type used by .BCDEFHGIJKLMNOPRQSTUVSTUPRQMNOKLIJFHGDEBCVInternal Safe-Inferred$ "#%&()-13<=?khexon'Combine the elements in the list using B<, interspersing the separator between each pair of elements.iexon'Combine the elements in the list using B<, interspersing the separator between each pair of elements.Returns  when the list is empty.jexon'Combine the elements in the list using B<, interspersing the separator between each pair of elements.Returns  for empty lists; use h for  or i to avoid the  requirement.hijhij  Safe-Inferred% "#%&()-13<=?kk  Safe-Inferred# %&()-13<=?'ll  Safe-Inferred% "#%&()-13<=?mexonParse a Haskell expression from source code into a Template Haskell expression. See parseExpWithExts or parseExpWithFlags9 for customizing with additional extensions and settings.nexonParse a Haskell expression from source code into a Template Haskell expression using a given set of GHC extensions.oexonParse a Haskell expression from source code into a Template Haskell expression using a given set of GHC DynFlags.pexon8Run the GHC parser to parse a Haskell expression into a HsExpr.mnopmnop 1The parser for the quasiquote body, using parsec. Safe-Inferred$ "#%&()-13<=? 5qrstuvwxyz{|}~qrstuvwxyz{|}~ Internal Safe-Inferred$ "#%&()-13<=?&AexonConstructor for a quasiquoter that wraps all segments with the first expression and unwraps the result with the second.This can be used to define quoters with custom logic by providing instances of any of the classes in Exon.Class.Exon7 with the result type argument set to the wrapper type:(import Exon.Class.Exon (ExonString (..))*import Exon.Data.Segment (Segment(String))/import qualified Data.Text.Lazy.Builder as Text'newtype Nl = Nl Text deriving (Generic)getNl (Nl t) = tinstance ExonString Nl Text.Builder where exonWhitespace _ = exonString @Nl "\n"9exonnl = exonWith (Just ([e|Nl|], [e|getNl|])) True False[exonnl|one two three|]"one\ntwo\nthree"exonA quasiquoter that allows interpolation, concatenating the resulting segments with : or a an arbitrary user-defined implementation. See the Exon introduction for details.[exon|write #{show (5 :: Int)} lines of ##{"code" :: ByteString}|] :: Text"write 5 lines of code"exonUnsafe version of , allowing automatic conversion with the same splice brackets as matching types.exon A variant of  that creates segments for each sequence of whitespace characters that can be processed differently by ,  or .exon9Internal debugging quoter that produces the raw segments. Safe-Inferred$ "#%&()-13<=?(exonWrapping a quote type with this causes whitespace to be ignored.exon5Defined separately because TH chokes on the selector.exon A variant of  that ignores all literal whitespace in the quote (not in interpolated expressions). "[intron|x|] === skipWs [exonws|x|]exon5The instance used when the result type is wrapped in , which is done by . It returns  for any whitespace. Safe-Inferred$ "#%&()-13<=?)'BCDEFGHIJPQRMONKL-.STjhi 'BCDEFGHIJPQRMONKL-.STjhi  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeffghijklmnopqrstuvwxyz{| } ~                                          '#exon-1.6.0.2-Lb4mmX0CgfhLhhtvriYmMeExon.Data.RawSegmentExon.Data.ResultExon.Data.Segment Exon.GenericExon.Class.ToSegmentExon.Class.NewtypeExon.Class.ExonExon.CombinatorsExon.Haskell.SettingsExon.Haskell.TranslateExon.Haskell.Parse Exon.Parse Exon.Quote Exon.SkipWsexon Text.Show showsPrecExonintronexonws ExonAppend ExonSegment ExonString RawSegment WsSegment StringSegment ExpSegmentAutoExpSegment$fEqRawSegment$fShowRawSegmentResultEmpty$fMonoidResult$fSemigroupResult $fEqResult $fShowResult$fFoldableResultSegmentString Whitespace Expression$fIsStringSegment $fEqSegment $fShowSegment$fFunctorSegmentOverNtWrapwrap WrapField wrapFieldUnwrapunwrap UnwrapField unwrapField NewtypeRep IsNewtype RepIsNewtypePrepRep$fRepIsNewtypeJustwrapped$fRepIsNewtyperepwrapped$fIsNewtypeTYPEwwrapped$fUnwrapFieldK1w$fUnwrapFieldM1w $fUnwrapaw$fWrapFieldK1w$fWrapFieldM1w$fWrapaw ToSegment toSegmentNoGenericMessageQNewtypeSegmentnewtypeSegment$fNewtypeSegmentNothingab$fToSegmentByteStringa$fToSegmentByteStringa0$fToSegmentTexta$fToSegmentTexta0$fToSegment[]a $fToSegmentab$fNewtypeSegmentJustac OverNewtypes overNewtypes OverNewtype overNewtype"$fOverNewtypecurrentNothingcurrent$fOverNewtypecurrentJustinner$fOverNewtypesresultinner exonProcess ExonBuild exonBuild exonAppend exonConcat exonSegmentExonExpressionexonExpression exonStringexonWhitespace ExonBuilder exonBuilderexonBuilderExtractExonUseexonUseexonProcessWith$fExonBuilderByteStringBuilder$fExonBuilderByteStringBuilder0$fExonBuilderTextBuilder$fExonBuilderTextBuilder0$fExonBuilderExonUsebuilder$fExonBuilderinnerbuilder$fExonStringresultFUN$fExonStringresulta"$fExonExpressionresultinnerbuilder$fExonSegmentresultinnerbuilder$fExonAppendresultFUN$fExonAppendresultbuilder$fExonBuildresultinner $fExonresult $fEqExonUse $fShowExonUse$fIsStringExonUse intercalate1intercalateMay intercalate baseDynFlagstoExpparseExpparseExpWithExtsparseExpWithFlags parseHsExprParserws whitespacetakeRestUnlessexprautoInterpolationverbatimInterpolationinterpolations stopHeraldhash verbatimWithverbatim verbatimWstexttextWssegment segmentWsparserparserWs parseWithparseparseWsQOrIOfileExtensions exonError segmentsQreifyExp reifySegments quoteExpWithquoteExp quoteSegmentsexonWithexun exonSegments$fQOrIOQ $fQOrIOIOSkipWsskipWs$fExonStringSkipWsbuilder $fEqSkipWs $fShowSkipWs$fGenericSkipWs$fIsStringSkipWsbase GHC.GenericsC1D1Generic Data.String fromStringIsString+incipit-base-0.5.1.0-DedTY5cghy47dZzDj4UrWUIncipit.TypeError<>GHC.BaseGHC.Show showString text-2.0.2Data.Text.Internal.BuilderBuilderid GHC.MaybeNothingmemptyNonEmptyMonoid