#JH      !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~      !"#$%&'( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F G  ,An internal module exporting common classes.((c) James Alexander Feldman-Crough, 2019MPL-2.0alex@fldcr.com TrustworthyHIJKLMNOPQRSTUVWXYZ[\]^_`ab SInternal implementations of common Optics functions, removing a dependency on lens.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafePSX(cdefghijklmnopqrstuvwxyz{|}~ 3Positional units for marking source-code locations.((c) James Alexander Feldman-Crough, 2019MPL-2.0alex@fldcr.comSafe79;<prosidyAn offset into a Source, counted by UTF-8 codepoint.prosidyA column number.prosidyA line number.The  instance for F counts from one, while the internal implementation counts from zero. 9Binary-search tree for finding the position of new lines.((c) James Alexander Feldman-Crough, 2019MPL-2.0alex@fldcr.com Trustworthy 7;@AHMV(prosidyA dense vector containing offsets poiting to the start of each line. That is, the starting position of the third line of a file can be found at position 2.prosidy Convert a  into a list of s, corresponding to the first character of a line. Note that the initial offset is omitted-- the offset at index 0 will be the offset of the second line.prosidy Fetch the  for the given . Evaluates to  if the given  does not appear in the LineMap prosidy Fetch the  number for a given s. Newlines will be attributed the line that they terminate, rather than the line started immediately afterwards. (Utilities for tracking source locaitons.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe79;m@Q prosidyA location in a 2, with the line and column number computed lazily. prosidyThe  this location references. prosidyThe position in the  , counted by Unicode codepoints. prosidyThe line number in the .prosidyThe column number in the .prosidyA location in a X. The line and column numbers of this type are not attached to this type; convert to a   to access those values.prosidyThe  this location references.prosidyThe position in the  , counted by Unicode codepoints.prosidy&Information about Prosidy source file.The - instance for ths class does not include the  or $ fields, as those are rather noisy.prosidyThe reported file-name of the .AWhen read from file handles, a non-filepath description such as  "<stdin>" is typically chosen. This field doesn't have semantic meaning, and should only be used to enrich the output displayed to users.prosidyThe full source, as .prosidy4A mapping of the start position of each line in the .prosidy Create a E from a descriptive name and a body. The source name is typically a p, but this is not guarenteed. For instance, when read from standard-input, Prosidy chooses to name the source <stdin>.prosidy Convert an  into a  .prosidy"Fetch a single line from a source.prosidy>Add lazily computed line and column number information to a .prosidy1Remove line and column number information from a  .      )An associative mapping of keys to values.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe7;<JJ1prosidy)An associative mapping of keys to values.Currently implemented as a $, this newtype wrapper allows us to:b1) Add non-orphan instances to the underlying structure. 2) Change the underlying type if needed.3prosidy%Given a function which operates on a G, return a function which performs an equivalent transfromation on an 1.4prosidy Convert a  to an 1.5prosidy Convert an 1 to a .6prosidy Convert an 1 into a list of key/value pairs.123456123456Definitions and helpers for L.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe7;<ZDprosidy(Details for errors thrown when creating L's with one or more invalid characters.Fprosidy The full string provided as the Ls name.Gprosidy&The position of the invalid character.Hprosidy%The exact character that was invalid.Iprosidy+Errors returned when creating invalid keys.JprosidyA character provided as a L's name was invalid.Kprosidy'A string of length 0 was provided as a L's name.LprosidyA L> is an identifier used in tags, properties, and setting names.Mprosidy Create a new L, checking its validity.Nprosidy Create a new L without performing any checks.Oprosidy Convert a L into its  representation.PprosidyGCheck if a character is suitable for use as the first character in a L.Qprosidy[Check if a character is suitable for use as any character except the first character in a L.TprosidyL exposes an E instance, but beware! Invalid strings will throw a pure exception. DEFGHIKJLMNOPQLMONPQIKJDEFGH'A type of items occuring in a sequence.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe%7;<gi< cprosidy A non-empty d.dprosidy1A newtype wrapper around a sequential collection. Currently, d is implemented as a ), but this is not guarenteed to be true.fprosidyMatch against a non-empty c and a trailing element.gprosidyMatch against a non-empty c and a leading element.hprosidy$Match against the last element of a d.iprosidy%Match against the first element of a d.jprosidyMatches a non-empty c as if it were just a d.kprosidyMatches against an empty d.lprosidy%Given a function which operates on a ), return a function which operates on a d.mprosidy Convert a  into a d.nprosidy Convert a d into a .oprosidyConvert a non-empty  into a c.pprosidy Convert a c into a . The returned 7 is guarenteed to always contain at least one element.cdefghijklmnopdelmncopjkfghif3g3h5i5(An unordered collection of unique items.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe79;<pprosidyDA newtype wrapper around an unordered collection of unique elements.5Currently, this is implemented as a wrapper around a .prosidy#Given a function which operates on =s, return a function which performs the same operation on a .prosidy Convert a  to a .prosidy Convert a  to a .@A convenience module which rexports type definitions & helpers.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe45679;<=>?kmprosidyA + containing a single plain-text item. Like , without a tag name.prosidyA L containing a single plain-text item. Specified in Prosidy source with the #= sigil.prosidyA  containing a zero or more  items. Like , without a tag name.prosidyA  containing zero or more . items. Specified in Prosidy source with the # sigil.prosidyA  containing a zero or more  items. Like , without a tag name.prosidyA  containing zero or more / items. Specified in Prosidy source with the #- sigil.prosidyA , annotated with a tag name.prosidy3An untagged structural grouping of items with type a#. Regions do not occur in parsing.prosidyA non-empty collection of  items. A  represents the border between block and inline contexts. All ancestors of a paragraph are block items or a document, and all children are inline items.prosidy4A set of properties and settings, associated with a . uThe namespaces of properties and settings are distinct; a property can share a name with a setting without conflict.prosidyProperties are a set of Ls with no associated value.prosidy Settings are Ls with an attached value.prosidyAA sum type enumerating allowed types inside of an inline context.prosidy7Spacing recorded between lines or on either side of an  '. Although we could represent this as , Prosidy defines a special node for this case so that authors in CJK languages (or other languages without explicit spaces between words) may simply ignore these spaces in their output.prosidyA  which contains only # items. These tags begin with the # sigil in source.prosidyA fragment of plain text.prosidy&Plain text, possibly annotated with a  .prosidyAccess the underlying .prosidyThe location of the  in the source code.prosidyA full Prosidy document.prosidy?A sum type enumerating allowed types inside of a block context.prosidy Convert a  to a . The resulting  will never have a   attached. prosidy Convert a  to a . Any   on the  will be discarded.prosidy Convert a  to a  by discarding the tag's name.prosidy Convert a  to a  by providing a tag name.;12DIKJLMOcde;12DIKJLMOcde%Parse raw text into Prosidy documents((c) James Alexander Feldman-Crough, 2019MPL-2.0alex@fldcr.com Trustworthy0;Mk prosidyA parsing error. prosidyParses a Prosidy  from its source.The , parameter is only used for error reporting. prosidyReads a Prosidy  from the given .)Errors will be thrown as exceptions. Use   for a pure implementation.prosidy#Parses a Prosidy document's header - from source, stopping when the header ends.The , parameter is only used for error reporting.prosidyReads a Prosidy document's  header from the given .)Errors will be thrown as exceptions. Use  for a pure implementation.prosidyPretty-print a  4 into a message acceptable for displaying to users.        %Profunctor optics over Prosidy types.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafeXprosidy!A classy optic for selecting the   from a value. Note that  is affine: a  m can't be attached to a value which does not -- already have one, and not all values with an instance of  have a location.prosidy Focus on the 2 from a value parsed from a source file. If the & is modified, note that the resulting  and  will also9 be modified as they are denormalizations of this value.prosidy Fetch the O from a value parsed from a source file. Modifications are not allowed as the  and  may become inconsistent.prosidy Fetch the O from a value parsed from a source file. Modifications are not allowed as the  and  may become inconsistent.prosidy Fetch the A a value was parsed from. Modifications are not allowed as the , , and  may become inconsistent. prosidyAn isomorphism between   and &. This is allowed because although a   has strictly more data than a 6, those values are denormalizations of values within .  COrphan JSON instances to let as many modules be -XSafe as possible.((c) James Alexander Feldman-Crough, 2019MPL-2.0alex@fldcr.com Trustworthy Optics for definitions in .$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafeHSVX_x(prosidyDAn optic for selecting children of an item in a recursive structure.)prosidy The type of all. of the children collectively. For instance, $type Content Document = Series Block, as  has zero or more contained s.+prosidy*A classy optic for focusing on items with  , including s, s, and s.-prosidy7Fetch all properties from items which contain metadata..prosidy;Fetch all settings defined on items which contain metadata./prosidyvCheck if a property is attached to an item with metadata. Using this optic as a setter will add a property if set to & and remove the property when set to .0prosidy<Select a setting from an item attached to metadata. Returns  if no value is set.1prosidyFocus on the name of a .2prosidyGet the contents of a .3prosidyFocus on the inner  of +s with a name. This can be used to filter (s to a specific subset for manipulation.4prosidyFocus only on block tags.5prosidyFocus only on paragraphs'6prosidyFocus only on literal tags.7prosidyFocus only on inline tags.8prosidyFocus only on text nodes.9prosidyFocus only on breaks.:prosidy A Prism from  into a valid L. ;prosidy!An isomorphism between Prosidy's 1 wrapper and .<prosidy8A prism between possibly-empty and non-empty containers.=prosidy An isomorpism between Prosidy's d wrapper and .>prosidyA prism from a non-empty  into a c.?prosidy!An isomorphism between Prosidy's  wrapper and .()*+,-./0123456789:;<=>?+,-./0()*123465789:;<=>?8A convenience module which rexports optics definitions.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafe7  ()*)+,-./0123456789:;<=>?@Top-level module exporting types, parsing functions, and optics.$2020 James Alexander Feldman-CroughMPL-2.0alex@fldcr.comSafeg 12DIKJLMOcde     ()*)+,-./0123456789:;<=>?f 12DIKJLMOcde     ()*+,-./0123456789:;<=>?           !!"#$%&'()*+,-./0123456789:;<=>>?@ABCDEFGHIJKLMNOPPQRSTUVWXYZ[\]^_`abcdefghijklmnoopqrstuvwxyz{|}~       !"#$%&' ( ) * + , - . / 0 1 2 3 4 5 6 7 8 9 : ; < = > ? @ A B C D E F GHIJKLMKLNKLOPQRPQSPQTPQUPQVPQWPQXPQYPZ[PZ\PZ]PZ^PZ_PZ`abcabdabeabfghighjklmklnkloHpqHprHpstuvtuwtuxtyzty{ty|t}~t}t}t}                           HH HHprosidy-1.6.0.2-inplaceProsidy.SourceProsidy.Types.AssocProsidy.Types.KeyProsidy.Types.SeriesProsidy.Types.Set Prosidy.Types Prosidy.ParseProsidy.Optics.SourceProsidy.Optics.TypesProsidy.Internal.ClassesProsidy.Optics.InternalProsidy.Source.UnitsProsidy.Source.LineMapProsidy.Internal.JSONProsidyTypesProsidy.OpticsOffsetColumnLineLineMap lineOffsets lineToOffset offsetToLineLocationlocationSourcelocationOffset locationLinelocationColumnSparseLocationsparseLocationSourcesparseLocationOffsetSource sourceName sourceText sourceLineMap makeSource getLocation getSourceLineenrichLocation stripLocation$fPrettySource $fShowSource$fPrettyLocation $fEqSource$fGenericSource$fHashableSource$fNFDataSource$fBinarySource$fShowSparseLocation$fGenericSparseLocation$fEqSparseLocation$fNFDataSparseLocation$fBinarySparseLocation$fHashableSparseLocation$fShowLocation$fGenericLocation $fEqLocation$fNFDataLocation$fBinaryLocation$fHashableLocationAssoc asHashMap fromHashMap toHashMap toEntries $fPrettyAssoc $fBinaryAssoc$fGenericAssoc $fEqAssoc $fShowAssoc $fToJSONAssoc$fFromJSONAssoc $fNFDataAssoc$fSemigroupAssoc $fMonoidAssoc$fHashableAssoc$fFoldableAssoc$fFunctorAssocInvalidCharacterinvalidCharacterTextinvalidCharacterPositioninvalidCharacterCharacterKeyErrorInvalidCharacterError EmptyKeyErrorKeymakeKey unsafeMakeKeyrawKeyisValidKeyHeadisValidKeyTail $fPrettyKey $fFromJSONKey $fIsStringKey$fExceptionKeyError $fShowKey $fGenericKey $fBinaryKey$fEqKey $fHashableKey $fNFDataKey$fOrdKey $fToJSONKey$fToJSONKeyKey$fShowInvalidCharacter$fEqInvalidCharacter$fShowKeyError $fEqKeyErrorSeriesNESeries:>>::<<::>::<:NonEmptyEmptyasSeqfromSeqtoSeq fromSeqNEtoSeqNE$fTraversableSeries$fPrettySeries$fHashableSeries$fBinarySeries$fTraversableSeriesNE$fPrettySeriesNE$fHashableSeriesNE$fFromJSONSeriesNE$fBinarySeriesNE$fGenericSeries $fShowSeries $fEqSeries$fToJSONSeries$fFromJSONSeries$fNFDataSeries$fSemigroupSeries$fMonoidSeries$fFoldableSeries$fFunctorSeries$fApplicativeSeries$fGenericSeriesNE$fShowSeriesNE $fEqSeriesNE$fToJSONSeriesNE$fNFDataSeriesNE$fSemigroupSeriesNE$fFoldableSeriesNE$fFunctorSeriesNE$fApplicativeSeriesNESet asHashSet toHashSet fromHashSet $fPrettySet $fBinarySet $fGenericSet$fEqSet $fShowSet $fNFDataSet$fSemigroupSet $fMonoidSet $fHashableSet $fFoldableSet LiteralRegion LiteralTag InlineRegion InlineTag BlockRegionBlockTagTagtagName tagMetadata tagContent tagLocationRegionregionMetadata regionContentregionLocation ParagraphparagraphContentparagraphLocationMetadatametadataPropertiesmetadataSettingsInlineBreak InlineTextFragment fragmentTextfragmentLocationDocumentdocumentMetadatadocumentContentBlock BlockLiteralBlockParagraphdocumentToRegionregionToDocument tagToRegion regionToTag$fPrettyFragment$fSemigroupMetadata$fPrettyMetadata$fMonoidMetadata$fPrettyRegion $fPrettyTag$fPrettyInline$fPrettyParagraph $fPrettyBlock$fPrettyDocument $fEqFragment$fShowFragment$fGenericFragment$fHashableFragment$fBinaryFragment$fNFDataFragment $fEqMetadata$fShowMetadata$fGenericMetadata$fNFDataMetadata$fBinaryMetadata$fHashableMetadata $fEqRegion$fFoldableRegion$fFunctorRegion $fShowRegion$fTraversableRegion$fGenericRegion$fHashableRegion$fNFDataRegion$fBinaryRegion$fEqTag $fFoldableTag $fFunctorTag $fShowTag$fTraversableTag $fGenericTag $fHashableTag $fNFDataTag $fBinaryTag $fEqInline $fShowInline$fGenericInline$fHashableInline$fBinaryInline$fNFDataInline $fEqParagraph$fShowParagraph$fGenericParagraph$fHashableParagraph$fNFDataParagraph$fBinaryParagraph $fEqBlock $fShowBlock$fGenericBlock$fHashableBlock $fBinaryBlock $fNFDataBlock $fEqDocument$fShowDocument$fGenericDocument$fHashableDocument$fNFDataDocument$fBinaryDocumentFailure parseDocument readDocumentparseDocumentMetadatareadDocumentMetadata prettyFailure$fExceptionFailure $fShowFailure $fFunctorP$fApplicativeP$fAlternativeP$fMonadP $fMonadFailP $fMonadPlusP$fMonadParsecP HasLocationlocationoffsetcolumnlinesourcesparse$fHasLocationInline$fHasLocationBlock$fHasLocationParagraph$fHasLocationFragment$fHasLocationRegion$fHasLocationTag$fHasLocationLocation HasContentContentcontent HasMetadatametadata propertiessettings hasProperty atSettingtagfragmenttagged _BlockTag_BlockParagraph _BlockLiteral _InlineTag_Text_Breakkey_Assoc _NonEmpty_Series _SeriesNE_Set$fHasMetadataMetadata$fHasMetadataRegion$fHasMetadataTag$fHasMetadataDocument$fHasContentParagraph$fHasContentRegion$fHasContentTag$fHasContentDocumentbase GHC.GenericsGenericQhashable-1.3.0.0-1ab8f9b0a0f69c668e9490132356faf9bd96a493c45b7a602f69c6f3bef7ca53Data.Hashable.ClassHashable hashWithSalthashNaeson-1.4.7.1-f637f6e0bfd179b66c3328090d8c8b9a9ceec8a30342adff836827efae15f841Data.Aeson.Types.ToJSONToJSONtoJSON toEncoding toJSONListtoEncodingList ToJSONKey toJSONKey toJSONKeyListData.Aeson.Types.FromJSONFromJSON parseJSON parseJSONList FromJSONKey fromJSONKeyfromJSONKeyListbinary-0.8.7.0Data.Binary.ClassBinarygetputputListdeepseq-1.4.4.0Control.DeepSeqNFDatarnfTprettyprinter-1.6.1-cc413ac30d37d78ffc8ba335783c6ee2f83920bfef4404ac801017c472e5ce8b"Data.Text.Prettyprint.Doc.InternalPrettypretty prettyListData.Functor.Contravariant Contravariant contramap>$Rprofunctors-5.5.2-5265afbe508af02bcc5a4a69fc2e7b00f10153a4ddf16c6528d9dc2973bcc929Data.Profunctor.ChoiceChoiceleft'right'Data.Profunctor.StrongStrongfirst'second'Data.Profunctor.Unsafe ProfunctordimaplmaprmapGetter Traversal'Affine'Prism'Lens'Iso'Optic' TraversalAffinePrismLensIsoOpticisolensprismprism'affineaffine' nullAffinetoviewviewspreviewoverassignreviewGHC.ShowShow GHC.MaybeNothing fromOffsets text-1.2.4.0Data.Text.InternalTextGHC.IOFilePath^unordered-containers-0.2.10.0-c7a2249bd0251352ecda9b7904d7e47af0d0541bfe570cfc63f719d22408d6c7Data.HashMap.BaseHashMap Data.StringIsStringcontainers-0.6.2.1Data.Sequence.InternalSeqData.HashSet.BaseHashSetghc-prim GHC.TypesTrueFalse