[{"name":"Camperdown.Config","comment":"\n\n@docs Config\n\n","unions":[],"aliases":[{"name":"Config","comment":" Markup parsing configuration\n\n  - `lineOffset`: difference between what the parser will report as a line position\n    and the actual line position, since this is used to parse file fragments\n  - `escapable`: Escapable characters in markup text are:\n      - Always: `\\`, \\`\\`\\``,`!`,`#`,`[`,`]`,`(`,`)\\`\n      - Verbatim or annotation capture characters\n      - The first character in a replacement\n\n","args":[],"type":"{ verbatimOpts : Set.Set Char.Char, annotationOpts : List.List { startSymbol : String.String, endSymbol : Maybe.Maybe String.String, commandOccursAfterwards : Camperdown.Occurs.Occurs }, annotationFirstChars : Set.Set Char.Char, escapable : Set.Set Char.Char, meaningful : Set.Set Char.Char, verbatimMarkers : List.List String.String }"}],"values":[],"binops":[]},{"name":"Camperdown.Loc","comment":"\n\n\n# Types\n\n@docs Loc\n@docs Location\n@docs Position\n\n\n# Functions\n\n@docs end\n@docs locate\n@docs location\n@docs map\n@docs start\n@docs todoDummyLocate\n@docs todoDummyLocation\n@docs todoDummyPosition\n@docs value\n@docs encodeLocation\n\n","unions":[],"aliases":[{"name":"Loc","comment":" ","args":["a"],"type":"( Camperdown.Loc.Location, a )"},{"name":"Location","comment":" ","args":[],"type":"{ start : Camperdown.Loc.Position, end : Camperdown.Loc.Position }"},{"name":"Position","comment":" ","args":[],"type":"{ line : Basics.Int, column : Basics.Int }"}],"values":[{"name":"encodeLocation","comment":" Encodes a Location as a JSON value.\n","type":"Camperdown.Loc.Location -> Json.Encode.Value"},{"name":"end","comment":" ","type":"Camperdown.Loc.Loc a -> Camperdown.Loc.Position"},{"name":"locate","comment":" ","type":"Camperdown.Loc.Position -> Camperdown.Loc.Position -> a -> Camperdown.Loc.Loc a"},{"name":"location","comment":" ","type":"Camperdown.Loc.Loc a -> Camperdown.Loc.Location"},{"name":"map","comment":" ","type":"(a -> b) -> Camperdown.Loc.Loc a -> Camperdown.Loc.Loc b"},{"name":"start","comment":" ","type":"Camperdown.Loc.Loc a -> Camperdown.Loc.Position"},{"name":"todoDummyLocate","comment":" ","type":"a -> Camperdown.Loc.Loc a"},{"name":"todoDummyLocation","comment":" ","type":"Camperdown.Loc.Location"},{"name":"todoDummyPosition","comment":" ","type":"Camperdown.Loc.Position"},{"name":"value","comment":" ","type":"Camperdown.Loc.Loc a -> a"}],"binops":[]},{"name":"Camperdown.Occurs","comment":"\n\n@docs Occurs\n\n","unions":[{"name":"Occurs","comment":" ","args":[],"cases":[["Never",[]],["Sometimes",[]],["Always",[]]]}],"aliases":[],"values":[],"binops":[]},{"name":"Camperdown.Parse","comment":" Placeholder\n\n@docs parse\n\n","unions":[],"aliases":[],"values":[{"name":"parse","comment":" Invokes the internal parsing infrastructure to parse a complete file.\n\nA document is split into sections by lines that start with `#`. This function returns\nthe elements in the prelude (part of the file before the first `#` marker) followed by\nthe parsed sections.\n\n","type":"Camperdown.Config.Config -> String.String -> Camperdown.Parse.Syntax.Document"}],"binops":[]},{"name":"Camperdown.Parse.Syntax","comment":" Placeholder\n\n@docs Command\n@docs Config\n@docs Divert\n@docs Document\n@docs Element\n@docs Label\n@docs Mark\n@docs Markup\n@docs Parameter\n@docs Section\n@docs Text\n@docs Value\n\n","unions":[{"name":"Divert","comment":" Placeholder\n","args":[],"cases":[["Nested",["List.List Camperdown.Parse.Syntax.Element"]],["Immediate",["List.List Camperdown.Parse.Syntax.Element"]],["Reference",["Camperdown.Loc.Loc String.String"]]]},{"name":"Element","comment":" Placeholder\n","args":[],"cases":[["Paragraph",["{ contents : Camperdown.Parse.Syntax.Markup }"]],["Preformatted",["{ lines : { start : Basics.Int, end : Basics.Int }, indent : Basics.Int, contents : String.String }"]],["Item",["{ lines : { start : Basics.Int, end : Basics.Int }, indent : Basics.Int, markLoc : Camperdown.Loc.Location, children : List.List Camperdown.Parse.Syntax.Element }"]],["Command",["{ lines : { start : Basics.Int, end : Basics.Int }, mark : Camperdown.Loc.Loc Camperdown.Parse.Syntax.Mark, command : Camperdown.Parse.Syntax.Command, child : Maybe.Maybe Camperdown.Parse.Syntax.Divert, indent : Basics.Int }"]],["Problem",["{ lines : { start : Basics.Int, end : Basics.Int }, indent : Basics.Int, loc : Camperdown.Loc.Location, problem : String.String }"]]]},{"name":"Label","comment":" Labels are used to reference sections of a document.\nUnlabeled sections will be marked with their line number.\n","args":[],"cases":[["Named",["Camperdown.Loc.Loc String.String"]],["Anonymous",["Basics.Int"]]]},{"name":"Mark","comment":" Placeholder\n","args":[],"cases":[["Bang",[]],["Huh",[]]]},{"name":"Text","comment":" Placeholder\n","args":[],"cases":[["Raw",["String.String"]],["Verbatim",["Char.Char","Camperdown.Loc.Loc String.String"]],["Annotation",["Camperdown.Loc.Loc String.String","List.List Camperdown.Parse.Syntax.Text","Maybe.Maybe (Camperdown.Loc.Loc String.String)","Maybe.Maybe (Camperdown.Loc.Loc Camperdown.Parse.Syntax.Command)"]],["InlineProblem",["Camperdown.Problem.Inline"]]]},{"name":"Value","comment":" Placeholder\n","args":[],"cases":[["Variable",["String.String"]],["String",["String.String"]],["Int",["Basics.Int"]],["Markup",["Camperdown.Parse.Syntax.Markup"]]]}],"aliases":[{"name":"Command","comment":" Placeholder\n","args":[],"type":"( Maybe.Maybe (Camperdown.Loc.Loc String.String), Camperdown.Parse.Syntax.Config )"},{"name":"Config","comment":" Placeholder\n","args":[],"type":"( List.List (Camperdown.Loc.Loc Camperdown.Parse.Syntax.Value), List.List (Camperdown.Loc.Loc Camperdown.Parse.Syntax.Parameter) )"},{"name":"Document","comment":" A document is a prelude followed by a list of sections\n","args":[],"type":"{ prelude : List.List Camperdown.Parse.Syntax.Element, sections : List.List Camperdown.Parse.Syntax.Section }"},{"name":"Markup","comment":" Placeholder\n","args":[],"type":"List.List Camperdown.Parse.Syntax.Text"},{"name":"Parameter","comment":" Placeholder\n","args":[],"type":"( Camperdown.Loc.Loc String.String, List.List (Camperdown.Loc.Loc Camperdown.Parse.Syntax.Value) )"},{"name":"Section","comment":" A document is a bunch of passages, organized hierarchically and, some of which may be\ngathered into labeled passages with the `#` section markers.\n","args":[],"type":"{ level : Basics.Int, contents : List.List Camperdown.Parse.Syntax.Element, label : Camperdown.Parse.Syntax.Label }"}],"values":[],"binops":[]},{"name":"Camperdown.Problem","comment":"\n\n@docs Inline, inlineToString\n\n","unions":[{"name":"Inline","comment":" ","args":[],"cases":[["BadEscapeChar",["Camperdown.Loc.Loc String.String"]],["VerbatimDoesNotFinish",["{ expectedEndmark : String.String, loc : Camperdown.Loc.Location }"]],["CommandLacksClosingParen",["Camperdown.Loc.Location"]],["CommandHasUnexpectedCharacter",["Camperdown.Loc.Loc String.String"]],["AnnotationDoesNotFinish",["{ startMark : Camperdown.Loc.Loc String.String, expectedEndMark : String.String, end : Camperdown.Loc.Position }"]],["InlineCommandParseError",["{ loc : Camperdown.Loc.Location, reason : String.String, captured : String.String }"]],["UnexpectedMarkupCharacter",["Camperdown.Loc.Loc Char.Char"]],["CommandNotPresentWhereRequired",["Camperdown.Loc.Location"]],["InvalidVerbatimChar",["Camperdown.Loc.Loc Char.Char"]],["InvalidAnnotation",["Camperdown.Loc.Loc ( String.String, Maybe.Maybe String.String )","Maybe.Maybe (Camperdown.Loc.Loc (Maybe.Maybe (Camperdown.Loc.Loc String.String)))"]],["InvalidParameter",["Camperdown.Loc.Loc String.String"]]]}],"aliases":[],"values":[{"name":"inlineToString","comment":" ","type":"Camperdown.Problem.Inline -> ( Camperdown.Loc.Location, String.String )"}],"binops":[]}]