h&2[02      !"#$%&'()*+,-./01  Safe-Inferred +2diagnose Analogous to  , but returns 30 on an empty list, instead of throwing an error.4diagnose Analogous to  , but returns 3 in case of an empty list.5diagnose Analogous tu  /, but does not throw an error on missing index.6diagnose(Safely deconstructs a list from the end.More efficient than (init x, last x)7diagnose9Safely deconstructs a list from the beginning, returning 3 if the list is empty.24567  Safe-Inferred +diagnose&A class mapping custom errors of type e with messages of type msg.diagnose;Defines all the hints associated with a given custom error.0Defines location information as a simple record.(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone #$+8>diagnose5Contains information about the location of something.#It is best used in a datatype like: data Located a = a :@ Position deriving (Show, Eq, Ord, Functor, Traversable)Columns are specified in amount of Unicode codepoints from the beginning of the line. Lines and columns start at 1.diagnose*The beginning line and column of the span. diagnose$The end line and column of the span. diagnose The file this position spans in.   Safe-Inferred +Q8Custom style definitions(c) Mesabloo, 2021-2022BSD3 experimentalPortable Safe-Inferred + diagnose1A style is a function which can be applied using .It transforms a 9ument containing  s into a 9&ument containing color information.diagnose1Some annotations as placeholders for colors in a 9.diagnose The color of  markers, depending on whether the report is an error report or a warning report.diagnose The color of  markers.diagnose The color of  markers.diagnoseThe color for hints.Note that the beginning Hint: text will always be in bold.diagnoseThe color for file names.diagnoseThe color of the rule separating the code/markers from the line numbers.diagnoseThe color of the [error]/ [warning] at the top, depending on whether this is an error or warning report.diagnose!The color in which to output the  noline) information when the file was not found.diagnoseAdditional style to apply to marker rules (e.g. bold) on top of some already processed color annotation.diagnose)The default style for diagnostics, where:> markers are colored in red for errors and yellow for warnings! markers are colored in dull blue markers are colored in magentaMarker rules are of the same color of the marker, but also in boldHints are output in cyan(The left rules are colored in bold black#File names are output in dull greenThe [error]/ [warning] at the top is colored in red for errors and yellow for warnings  =Internal workings for report definitions and pretty printing.(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone  #$+>diagnoseThe type of markers with abstract message type, shown under code lines. diagnoseA red or yellow marker under source code, marking important parts of the code.!diagnose1A blue marker symbolizing additional information."diagnose+A magenta marker to report potential fixes.#diagnose:The type of diagnostic reports with abstract message type.$diagnose(Constructs a warning or an error report.%diagnose(Constructs a warning or an error report.:diagnosePretty prints a report to a 9 handling colors.;diagnose,Inserts a given number of character after a 9ument.<diagnoseCreates a "dot"-prefix for a report line where there is no code.%Pretty printing yields those results:  with unicode"HHHHH@H"without unicode"HHHHH:H"=diagnoseCreates a "pipe"-prefix for a report line where there is no code.%Pretty printing yields those results:  with unicode"HHHHHJH"without unicode"HHHHH|H">diagnose>Creates a line-prefix for a report line containing source code%Pretty printing yields those results:  with unicode"HHH3HJH"without unicode"HHH3H|H"Results may be different, depending on the length of the line number.?diagnoseCreates an ellipsis-prefix, when some line numbers are not consecutive.%Pretty printing yields those results:  with unicode"HHHHHEH"without unicode"HHHH..."@diagnosePrettyprint a sub-report, which is a part of the report spanning across a single fileAdiagnoseBdiagnoseCdiagnoseDdiagnoseEdiagnoseFdiagnose$Extracts the color of a marker as a 9 coloring function.Gdiagnose'Retrieves the message held by a marker.HdiagnosePretty prints all hints. Idiagnose$Is the report a warning or an error?diagnose+An optional error code to print at the top.diagnose&The message associated with the error.diagnoseA map associating positions with marker to show under the source code.diagnose0A list of hints to add at the end of the report.$diagnoseAn optional error code to be shown right next to "error" or "warning".diagnose*The report message, shown at the very top.diagnose*A list associating positions with markers.diagnoseA possibly mempty list of hints to add at the end of the report.%diagnoseAn optional error code to be shown right next to "error" or "warning".diagnose*The report message, shown at the very top.diagnose*A list associating positions with markers.diagnoseA possibly mempty list of hints to add at the end of the report.:diagnose+The content of the file the reports are fordiagnose!Should we print paths in unicode?diagnose1The number of spaces each TAB character will spandiagnoseThe whole report to output<diagnose/The length of the left space before the bullet.diagnose0Whether to print with unicode characters or not.=diagnose-The length of the left space before the pipe.diagnose0Whether to print with unicode characters or not.>diagnoseThe length of the amount of space to span before the vertical bar.diagnoseThe line number to show.diagnose)Whether to use unicode characters or not.@diagnose'The content of files in the diagnosticsdiagnose+Is the output done with Unicode characters?diagnose&Is the current report an error report?diagnose1The number of spaces each TAB character will spandiagnose#The size of the biggest line numberdiagnose-Is this sub-report the first one in the list?diagnose;The list of line-ordered markers appearing in a single fileBdiagnose1The number of spaces each TAB character will spanFdiagnoseWhether the marker is in an error context or not. This really makes a difference for a   marker.diagnose%The marker to extract the color from.diagnoseA function used to color a 9.! "#I$%:;<=>?J@KABCDEFGH%Report definition and pretty printing(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone +!" #$%!" #$%Internal workings for diagnostic definitions and pretty printing.(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone +>'&diagnoseThe data type for diagnostic containing messages of an abstract type.0The constructors are private, but users can use  from the L4 typeclass to create a new empty diagnostic, and ) and * to alter its internal state.'diagnosePretty prints a & into a 9ument that can be output using M.=Colors are put by default. If you do not want these, just N the resulting document like so:let doc = unAnnotate (prettyDiagnostic withUnicode tabSize diagnostic)'Changing the style is also rather easy:let myCustomStyle :: Style = _let doc = myCustomStyle (prettyDiagnostic withUnicode tabSize diagnostic)(diagnose Prints a & onto a specific O.)diagnose7Inserts a new referenceable file within the diagnostic.*diagnose'Inserts a new report into a diagnostic.+diagnoseCreates a JSON object from a diagnostic, containing those fields (only types are indicated): { files: { name: string , content: string[] }[] , reports: { kind: 'error' | 'warning' , code: T? , message: T , markers: { kind: 'this' | 'where' | 'maybe' , position: { beginning: { line: int, column: int } , end: { line: int, column: int } , file: string } , message: T }[] , hints: T[] }[] }where T0 is the type of the JSON representation for the msg type variable.Pdiagnose*All the reports contained in a diagnostic.>Reports are output one by one, without connections in between.diagnose=A map associating files with their content as lists of lines.'diagnose*Should we use unicode when printing paths?diagnose2The number of spaces each TAB character will span.diagnoseThe diagnostic to print.(diagnose/The handle onto which to output the diagnostic.diagnose(Should we print with unicode characters?diagnoseQ to disable colors.diagnose2The number of spaces each TAB character will span.diagnose,The style in which to output the diagnostic.diagnoseThe diagnostic to output.)diagnoseThe path to the file.diagnoseThe content of the file as a single string, where lines are ended by \n.*diagnose(The new report to add to the diagnostic.&P'()*+)Diagnostic definition and pretty printing(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone +( &'()*+ &'()*+None +(#8  !" #$%&'()*+Compatibility layer for parsec(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone &+?,(,diagnoseGenerates a diagnostic from a R.-diagnose%Generates an error diagnostic from a R..diagnose&Generates a warning diagnostic from a R.,diagnose9Determine whether the diagnostic is an error or a warningdiagnoseAn optional error codediagnose The main error of the diagnosticdiagnose Default hintsdiagnoseThe R to transform into a &-diagnoseAn optional error codediagnose(The main error message of the diagnosticdiagnose Default hintsdiagnoseThe R to convert.diagnoseAn optional error codediagnose(The main error message of the diagnosticdiagnose Default hintsdiagnoseThe R to convert,-.,-."Compatibility layer for megaparsec(c) Mesabloo, 2021-2022BSD3 experimentalPortableNone  #$&+0K/diagnoseTransforms a megaparsec S into a well-formated & ready to be shown.0diagnose.Creates an error diagnostic from a megaparsec S.1diagnose/Creates a warning diagnostic from a megaparsec S./diagnose>How to decide whether this is an error or a warning diagnosticdiagnoseAn optional error codediagnose#The error message of the diagnosticdiagnose.Default hints when trivial errors are reporteddiagnose&The bundle to create a diagnostic from0diagnoseAn optional error codediagnose#The error message of the diagnosticdiagnose.Default hints when trivial errors are reporteddiagnose&The bundle to create a diagnostic from1diagnoseAn optional error codediagnose#The error message of the diagnosticdiagnose.Default hints when trivial errors are reporteddiagnose&The bundle to create a diagnostic from/01/01 Safe-Inferred +0TUVWXYZ[  !!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a:bcdefghij=klmnopqrstuvwxyz{diagnose-2.0.1-inplaceError.Diagnose.DiagnosticError.Diagnose.StyleError.Diagnose.Compat.ParsecError.Diagnose.PositionError.Diagnose.Report Error.Diagnose.Compat.MegaparsecData.List.Safe Data.Listlasthead!!Error.Diagnose.Compat.HintsError.Diagnose.PrettyThisMaybeWhereError.Diagnose.Report.Internal"Error.Diagnose.Diagnostic.InternalError.DiagnosePaths_diagnosebaseGHC.IO.Handle.FDstdoutstderrdata-default-class-0.1.2.0-c02137f3b596e844bef779396d9ce63da3b73a41d5018ec31fdc9e34ace10009Data.Default.Classdefprettyprinter-1.7.1-745b59faccda2de3a492f12baf18f0f9a40ff10f8fbf1d6b1b15ef6c64c5f8eaPrettyprinter.Internal reAnnotateHasHintshintsPositionbeginendfile$fToJSONPosition$fDefaultPosition$fHashablePosition$fPrettyPosition $fOrdPosition$fShowPosition $fEqPosition$fGenericPositionStyle Annotation ThisColor MaybeColor WhereColor HintColor FileColor RuleColor KindColor NoLineColor MarkerStyle defaultStyleMarkerReportwarnerr DiagnosticprettyDiagnosticprintDiagnosticaddFile addReportdiagnosticToJsondiagnosticFromParseErrorerrorDiagnosticFromParseErrorwarningDiagnosticFromParseErrordiagnosticFromBundleerrorDiagnosticFromBundlewarningDiagnosticFromBundlesafeLast GHC.MaybeNothingsafeHead safeIndex safeUnsnoc safeUnconsGHC.Base<>Doc prettyReportpad dotPrefix pipePrefix linePrefixellipsisPrefixprettySubReportsplitMarkersPerLineprettyAllLinesgetLine_showAllMarkersInLinereplaceLinesWith markerColor markerMessageprettyAllHintsgroupMarkersPerFile isThisMarkerDefaultprettyprinter-ansi-terminal-1.1.3-c8b279f0df86fbe5d08159906dee81347a2b35e5e6a208b81bf7d6432b34b44e&Prettyprinter.Render.Terminal.InternalhPutDoc unAnnotateGHC.IO.Handle.TypesHandleghc-prim GHC.TypesFalseparsec-3.1.14.0Text.Parsec.Error ParseErrormegaparsec-9.2.0-8aa42e5f5b7db157aad227ac3da61ea898a054e44fba7f0f4fc449d73a72f3aaText.Megaparsec.ErrorParseErrorBundleversiongetDataFileName getBinDir getLibDir getDynLibDir getDataDir getLibexecDir getSysconfDir