h$ Safe-Inferred/hls-eval-plugin;langOptions ":set -XBinaryLiterals -XOverloadedStrings ",Right ["BinaryLiterals","OverloadedStrings"]langOptions ":set"Right []langOptions ""Left "No match"None /58:<hls-eval-plugin#Specify the test section to executehls-eval-pluginunique group id; for test useshls-eval-pluginRange is that of surrounding entire block comment, not section. Used for detecting no-newline test commands.hls-eval-plugin!A thing with a location attached.hls-eval-pluginDiscard location information.hls-eval-pluginSplit setup and normal sections3   !"#$%&'()*+,-./012345None #$/8<> 6hls-eval-pluginLine comment group parser7hls-eval-plugin Line parser8hls-eval-pluginSingle line or block comments?9hls-eval-pluginClassification of comments:hls-eval-pluginExample line, with >>> stripped off;hls-eval-plugin$Prop line, with "prop>" stripped off<hls-eval-pluginBlock comment parser=hls-eval-plugin.?hls-eval-pluginTurning a line parser into line group parser consuming a single line comment. Parses a sinlge line comment, skipping prefix "--[-*]" with optional one horizontal space. fails if the input does not start with "--".N.B.! We don't strip comment flavours."pck = (:[]).(:[]) . RawLineComment2parseMaybe (parseLine $ takeRest) $ pck "-- >>> A"Just [">>> A"]4parseMaybe (parseLine $ takeRest) $ pck "--- >>> A"Just [" >>> A"](parseMaybe (parseLine takeRest) $ pck ""Nothing@hls-eval-pluginNon-empty normal line.Ahls-eval-pluginNormal line is a line neither a example nor prop. Empty line is normal.Bhls-eval-pluginParses example test line.Chls-eval-pluginParses prop test line.Dhls-eval-pluginGiven a sequence of tokens increasing in their starting position, groups them into sublists consisting of contiguous tokens; Two adjacent tokens are considered to be contiguous ifline number increases by 1, andthey have same starting column.contiguousGroupOn id [(1,2),(2,2),(3,4),(4,4),(5,4),(7,0),(8,0)]:[(1,2) :| [(2,2)],(3,4) :| [(4,4),(5,4)],(7,0) :| [(8,0)]]Ehls-eval-pluginGiven a map from positions, divides them into subgroup with contiguous line and columns.Fhls-eval-pluginTrue if it is literate HaskellGhls-eval-pluginTrue if Literate Haskell@hls-eval-pluginTrue if Literate HaskellAhls-eval-pluginTrue if Literate HaskellBhls-eval-pluginTrue if Literate HaskellChls-eval-pluginTrue if Literate HAskellHIJK678LM9NOPQRSTUVWXY:Z[;\]<^_`abcFdefGghijklmno=pqrstuvwxyz?@A{|B}~CDENone /hls-eval-pluginA one-line Haskell statementhls-eval-pluginReturn the ranges of the expression and result parts of the given testhls-eval-pluginThe document range where a test is defined testRange :: Loc Test -> Range testRange = fst . testRanges:The document range where the result of the test is definedhls-eval-plugin reverse (reverse l) == l+++ OK, passed 100 tests.\(l::[Bool]) -> reverse l == l** Failed! Falsified (after 6 tests and 2 shrinks): [True,False] None/Ihls-eval-pluginLog using hie logger, reports source position of logging statement None/2hls-eval-plugin'Returns true if string is an expression%isExprTst e df = return (isExpr df e)run $ isExprTst "3"Truerun $ isExprTst "(x+y)"True#run $ isExprTst "import Data.Maybe"Falserun $ isExprTst "three=3"Falsehls-eval-plugin0True if specified package is present in DynFlags- >>> hasPackageTst pkg = run $ df -> return (hasPackage df pkg) >>> hasPackageTst pkg = run $ _ -> addPackages [pkg] >>= return . either Left (df -> Right (hasPackage df pkg))hasPackageTst "base" Right TruehasPackageTst "ghc" Right TruehasPackageTst "extra"Left ": cannot satisfy -package extra\n (use -v for more information)"hasPackageTst "QuickCheck"Left ": cannot satisfy -package QuickCheck\n (use -v for more information)"hls-eval-pluginExpose a list of packages. >>> addPackagesTest pkgs = run (_ -> (packageFlags  $)  $ addPackages pkgs)addPackagesTest []Right []'addPackagesTest ["base","base","array"]Right [-package base{package base True ([])},-package array{package array True ([])}]addPackagesTest ["Cabal"]/Right [-package Cabal{package Cabal True ([])}]addPackagesTest ["QuickCheck"]Left ": cannot satisfy -package QuickCheck\n (use -v for more information)"#addPackagesTest ["base","notThere"]Left ": cannot satisfy -package notThere\n (use -v for more information)"\(x::Int) -> x + x == 2 * x+++ OK, passed 100 tests.hls-eval-plugin Add import to evaluation context)run $ \_ -> addImport "import Data.Maybe""Could not find module @Data.Maybe@Use -v (or `:set -v` in ghci) to see a list of the files searched for.run $ \df -> addPackages ["base"] >> addImport "import Data.Maybe"[import Data.Maybe]run $ \df -> addPackages ["base"] >> addImport "import qualified Data.Maybe as M""[import qualified Data.Maybe as M]hls-eval-pluginAdd extension to interactive evaluation session >>> import GHC.LanguageExtensions.Type(Extension(..)) >>> run $ _ -> addExtension DeriveGeneric ()None  #$%&/>?hls-eval-pluginCode Lens provider NOTE: Invoked every time the document is modified, not just when the document is saved.None#/hls-eval-pluginPlugin descriptor       !"#$%&''()*+,,-./0123456789:;<=>?@ABCDEFGHIJKLLMNOPQRSTUVWXYZ[\<]=^_`abcdefghijklmnopqrstuvwxyz{|}~.hls-eval-plugin-1.0.0.0-2gTE7AFh3joF6klq4OpsItIde.Plugin.EvalIde.Plugin.Eval.Parse.OptionIde.Plugin.Eval.TypesIde.Plugin.Eval.Parse.CommentsIde.Plugin.Eval.CodeIde.Plugin.Eval.UtilIde.Plugin.Eval.GHCIde.Plugin.Eval.CodeLens descriptor langOptions parseSetFlags EvalParamsevalId MultiLineLocatedunLoc splitSectionssectionsmodule_LanguagePlainHaddockFormat SingleLineRawLineCommentgetRawLineCommentRawBlockCommentgetRawBlockCommentComments lineComments blockCommentsTestPropertyExample testLines testOutput testRangetestlineSectionsectionLanguage sectionName sectionTests sectionFormatSectionsnonSetupSections setupSectionsTxtLoclocationlocatedlocatelocate0hasTestshasPropertyTest isPropertyLineGroupParser LineParser CommentStyleCommentFlavour ExampleLinePropLineBlockCommentParser lineGroupPbase Data.EitherEither parseLinenonEmptyNormalLineP normalLinePexampleLineStrP propLineStrPcontiguousGroupOngroupLineCommentscommentsToSectionsblockCommentBPBlockEnv blockRangeisLhsBlockLine HaddockPrev HaddockNextVanillaNamed TestComment AnExampleAPropexampleResults lineExamples propResultslineProptestCommentRangegetExampleLine getPropLine blockRangeLisLhsL SectionRange CommentRange_Line_BlockparseBlockMaybetestsToSectionfromTestCommentskipNormalCommentBlock testSymboleob blockExamples blockProp withRange resultBlockPpositionToSourcePossourcePosToPositioncommentFlavourPlineCommentHeadPlineCommentSectionsP lexemeLine resultLinesPnormalLineCommentP nonEmptyLGPexampleLinesGPconvexHullRange exampleLineGP propLineGPconsume getPosition exampleSymbol propSymbol Statement testRanges resultRangeevalExprevalExtensions evalSetup propSetup testCheck asStatementslogWithasStimed isLiterate handleMaybe handleMaybeMresponse response' gStrictTryisExpr hasPackage addPackages addImport addExtension modifyFlags showDynFlagscodeLens evalCommand