Skip to content

How to use Eval Plugin with vim + coc + haskell language server? #435

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
folivetti opened this issue Sep 26, 2020 · 14 comments
Closed

How to use Eval Plugin with vim + coc + haskell language server? #435

folivetti opened this issue Sep 26, 2020 · 14 comments
Labels
component: hls-eval-plugin type: support User support tickets, questions, help with setup etc.

Comments

@folivetti
Copy link

If you encounter a bug or you have a support question, please try to fill out some of the information below.
However, if you think your issue does not need any of it, you may omit it.
Generally speaking, the information below is meant for helping debugging issues
but they are no prerequisite for opening issues.

Subject of the issue

There are no instructions on how to use Eval Plugin with vim + coc.

Your environment

  • haskell-language-server version: 0.4.0.0 (GHC: 8.8.4)
    (GIT hash: 0a18edd)
    Tool versions found on the $PATH
    cabal: 2.2.0.0
    stack: 2.3.1
    ghc: Not found

  • Which lsp-client do you use

    • vim + coc

Steps to reproduce

Including -- >>> print "Hello" in any source code doesn't activate Eval Plugin

Expected behaviour

In VSCode it shows up a button to Eval, I would expect at least a command to eval this line

Actual behaviour

Nothing.

@googleson78
Copy link
Contributor

It's a "code lens" that you are supposed to trigger in some way. In LanguageClient-neovim it was called codeLensAction.

I'm assuming in coc-nvim this is the thing you're looking for.

@folivetti
Copy link
Author

I have enabled it in CocConfig but still nothing happens :( I can't seem to find any good documentation on how to set it up

@tek
Copy link
Contributor

tek commented Sep 26, 2020

doesn't work for me either

@googleson78
Copy link
Contributor

googleson78 commented Sep 26, 2020

What do you mean by enabled?

  • do you have virtual text support for vim? from coc's docs:
    Enable `codeLens` feature. Requires Neovim with virtual text feature,
    default: `false`
    
  • are you executing the codeLensAction function when you're on the corresponding line?

If both of those are true, then you should enable haskell-language-servers logging and post a log here.

  -d,--debug               Generate debug output
  -l,--logfile LOGFILE     File to log to, defaults to stdout

@folivetti
Copy link
Author

in CocConfig I have:

"diagnostic.virtualText": true,
"codeLens.enable": true

and in vimrc:

xmap <leader>re  <Plug>(coc-codelens-action)
nmap <leader>re  <Plug>(coc-codelens-action)

when I try to execute codelens-action it says No codeLenses available

After enabling debugging and logging, the log file is empty

@folivetti
Copy link
Author

sorry, I was running the logging with the wrong parameter, here's the full log

2020-09-26 11:47:03.249052301 [ThreadId 5] - 




haskell-lsp:Starting up server ...
2020-09-26 11:47:03.249541802 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":32462,"rootPath":"/home/olivetti/Downloads/testesHaskell/contador","rootUri":"file:///home/olivetti/Downloads/testesHaskell/contador","capabilities":{"workspace":{"applyEdit":true,"workspaceEdit":{"documentChanges":true,"resourceOperations":["create","rename","delete"],"failureHandling":"textOnlyTransactional"},"didChangeConfiguration":{"dynamicRegistration":true},"didChangeWatchedFiles":{"dynamicRegistration":true},"symbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"tagSupport":{"valueSet":[1]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"versionSupport":false,"tagSupport":{"valueSet":[1,2]}},"synchronization":{"dynamicRegistration":true,"willSave":true,"willSaveWaitUntil":true,"didSave":true},"completion":{"dynamicRegistration":true,"contextSupport":true,"completionItem":{"snippetSupport":true,"commitCharactersSupport":true,"documentationFormat":["markdown","plaintext"],"deprecatedSupport":true,"preselectSupport":true},"completionItemKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25]}},"hover":{"dynamicRegistration":true,"contentFormat":["markdown","plaintext"]},"signatureHelp":{"dynamicRegistration":true,"signatureInformation":{"documentationFormat":["markdown","plaintext"],"parameterInformation":{"labelOffsetSupport":true}}},"definition":{"dynamicRegistration":true},"references":{"dynamicRegistration":true},"documentHighlight":{"dynamicRegistration":true},"documentSymbol":{"dynamicRegistration":true,"symbolKind":{"valueSet":[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26]},"hierarchicalDocumentSymbolSupport":true,"tagSupport":{"valueSet":[1]}},"codeAction":{"dynamicRegistration":true,"isPreferredSupport":true,"codeActionLiteralSupport":{"codeActionKind":{"valueSet":["","quickfix","refactor","refactor.extract","refactor.inline","refactor.rewrite","source","source.organizeImports"]}}},"codeLens":{"dynamicRegistration":true},"formatting":{"dynamicRegistration":true},"rangeFormatting":{"dynamicRegistration":true},"onTypeFormatting":{"dynamicRegistration":true},"rename":{"dynamicRegistration":true,"prepareSupport":true},"documentLink":{"dynamicRegistration":true,"tooltipSupport":true},"typeDefinition":{"dynamicRegistration":true},"implementation":{"dynamicRegistration":true},"declaration":{"dynamicRegistration":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"selectionRange":{"dynamicRegistration":true}},"window":{"workDoneProgress":true}},"initializationOptions":{"haskell":{}},"trace":"off","workspaceFolders":[{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador","name":"contador"}],"clientInfo":{"name":"coc.nvim","version":"0.0.78"},"workDoneToken":"cb83721a-c2c6-4ac5-95b9-dd01b7dd6a1f"}}
2020-09-26 11:47:03.250804128 [ThreadId 5] - haskell-lsp:initializeRequestHandler: setting current dir to project root:/home/olivetti/Downloads/testesHaskell/contador
2020-09-26 11:47:03.25733271 [ThreadId 7] - <--2--{"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"save":{}},"workspace":{"workspaceFolders":{"supported":true,"changeNotifications":true}},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["32532:eval:evalCommand","32532:ghcide:typesignature.add","32532:importLens:ImportLensCommand","32532:pragmas:addPragma","32532:retrie:retrieCommand"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":false},"codeLensProvider":{},"documentSymbolProvider":true,"documentFormattingProvider":true}},"jsonrpc":"2.0","id":0}
2020-09-26 11:47:03.261898862 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"initialized","params":{}}
2020-09-26 11:47:03.262073183 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs","languageId":"haskell","version":1,"text":"module Main where\n\nimport Data.List\nimport qualified Data.Map.Strict as M \n\n-- >>> :type contarMap\n\ncontarMap :: String -> M.Map String Int \ncontarMap texto = M.fromListWith (+) chaveValor\n  where\n    palavras   = words texto\n    chaveValor = [(palavra, 1) | palavra <- palavras]\n\ncontar :: String -> [(String, Int)]\ncontar texto = [(head css, length css) | css <- agrupada]\n  where\n    palavras = words texto\n    ordenada = sort palavras\n    agrupada = group ordenada \n\nmostraEntrada :: (String, Int) -> IO ()\nmostraEntrada (s,c) = putStrLn texto\n  where\n    texto = s ++ \", \" ++ show c\n\nmain :: IO ()\nmain = do\n  texto <- getContents \n  mapM_ (\\(s,c) -> putStrLn (s ++ \", \" ++ show c)) (M.toList (contarMap texto))\n"}}}
2020-09-26 11:47:03.262691928 [ThreadId 17] - Set files of interest to: [NormalizedFilePath "/home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"]
2020-09-26 11:47:03.263015138 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:03.263128215 [ThreadId 16] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:03.263276221 [ThreadId 17] - Opened text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:03.26425325 [ThreadId 50] - Data.HashMap.Internal.(!): key not found
CallStack (from HasCallStack):
  error, called at ./Data/HashMap/Internal.hs:753:16 in unordered-containers-0.2.12.0-2e3fe165d2481c3a755449eca3083a286519fe98ac20523b8f479e0645004f51:Data.HashMap.Internal
  !, called at src/Development/IDE/Import/DependencyInformation.hs:107:40 in ghcide-0.2.0-inplace:Development.IDE.Import.DependencyInformation
2020-09-26 11:47:03.264436239 [ThreadId 50] - finish: ParentTC (took 0.00s)
2020-09-26 11:47:03.265172007 [ThreadId 53] - Consulting the cradle for "/home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"
2020-09-26 11:47:03.266295629 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":0},"method":"window/workDoneProgress/create","id":0}
2020-09-26 11:47:03.26644804 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Setting up project contador"},"token":0},"method":"$/progress"}
2020-09-26 11:47:03.269245222 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":0,"result":null}
2020-09-26 11:47:03.269367308 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":null}"
2020-09-26 11:47:03.36413094 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"token":"8"},"method":"window/workDoneProgress/create","id":1}
2020-09-26 11:47:03.364333312 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","title":"Processing"},"token":"8"},"method":"$/progress"}
2020-09-26 11:47:03.365227037 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"result":null}
2020-09-26 11:47:03.365383244 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":null}"
2020-09-26 11:47:03.464384511 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"1/2"},"token":"8"},"method":"$/progress"}
2020-09-26 11:47:04.470566672 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":0},"method":"$/progress"}
2020-09-26 11:47:04.470392616 [ThreadId 53] - Session loading result: Right (ComponentOptions {componentOptions = ["-i","-odir=/home/olivetti/Downloads/testesHaskell/contador/.stack-work/odir","-hidir=/home/olivetti/Downloads/testesHaskell/contador/.stack-work/odir","-hide-all-packages","-i/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador","-i/home/olivetti/Downloads/testesHaskell/contador/src","-i/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen","-i/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen","-i/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp","-stubdir=/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build","-package-id=base-4.13.0.0","-package-id=containers-0.6.2.1","-haddock","-optP-include","-optP/home/olivetti/Downloads/testesHaskell/contador/.stack-work/ghci/3d0731e6/cabal_macros.h","-ghci-script=/tmp/haskell-stack-ghci/b5313e91/ghci-script","-package-db","/home/olivetti/Downloads/testesHaskell/contador/.stack-work/install/x86_64-linux/fe78d51eee2d7213e84d7d138b676ba5999383062a2a867cbde50c53d76d69f8/8.8.4/pkgdb","-package-db","/home/olivetti/.stack/snapshots/x86_64-linux/fe78d51eee2d7213e84d7d138b676ba5999383062a2a867cbde50c53d76d69f8/8.8.4/pkgdb","-package-db","/home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/lib/ghc-8.8.4/package.conf.d"], componentRoot = "/home/olivetti/Downloads/testesHaskell/contador", componentDependencies = ["contador.cabal","package.yaml","stack.yaml"]},"/home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/lib/ghc-8.8.4")
2020-09-26 11:47:04.519116794 [ThreadId 53] - Using interface files cache dir: /home/olivetti/.cache/ghcide/main-296ea8c788e7dee31b34df7347b8833b10c5c645
2020-09-26 11:47:04.519282969 [ThreadId 53] - Making new HscEnv[main]
2020-09-26 11:47:04.527053287 [ThreadId 53] - New Component Cache HscEnvEq: (([],Just HscEnvEq 9),fromList [("contador.cabal",Just 2020-09-26 12:13:40.351303468 UTC),("package.yaml",Nothing),("stack.yaml",Just 2020-09-26 11:13:51.153427231 UTC)])
2020-09-26 11:47:04.527320919 [ThreadId 28] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:04.527372207 [ThreadId 53] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:04.528526481 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"contador.cabal"}]},"method":"workspace/didChangeWatchedFiles","id":"contador.cabal"}]},"method":"client/registerCapability","id":2}
2020-09-26 11:47:04.528856752 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"package.yaml"}]},"method":"workspace/didChangeWatchedFiles","id":"package.yaml"}]},"method":"client/registerCapability","id":3}
2020-09-26 11:47:04.528977098 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"stack.yaml"}]},"method":"workspace/didChangeWatchedFiles","id":"stack.yaml"}]},"method":"client/registerCapability","id":4}
2020-09-26 11:47:04.53040622 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"result":null}
2020-09-26 11:47:04.530497335 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":null}"
2020-09-26 11:47:04.531149573 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":3,"result":null}
2020-09-26 11:47:04.53121796 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":3,\"result\":null}"
2020-09-26 11:47:04.531309129 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Prelude.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Prelude.hs"}]},"method":"client/registerCapability","id":5}
2020-09-26 11:47:04.531488836 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Prelude.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Prelude.lhs"}]},"method":"client/registerCapability","id":6}
2020-09-26 11:47:04.531738606 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Prelude.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Prelude.hs"}]},"method":"client/registerCapability","id":7}
2020-09-26 11:47:04.531888203 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Prelude.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Prelude.lhs"}]},"method":"client/registerCapability","id":8}
2020-09-26 11:47:04.53201007 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":4,"result":null}
2020-09-26 11:47:04.532094226 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":4,\"result\":null}"
2020-09-26 11:47:04.532086014 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Prelude.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Prelude.hs"}]},"method":"client/registerCapability","id":9}
2020-09-26 11:47:04.532290562 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Prelude.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Prelude.lhs"}]},"method":"client/registerCapability","id":10}
2020-09-26 11:47:04.532424723 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":5,"result":null}
2020-09-26 11:47:04.532498231 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":5,\"result\":null}"
2020-09-26 11:47:04.532537008 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Prelude.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Prelude.hs"}]},"method":"client/registerCapability","id":11}
2020-09-26 11:47:04.532725766 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Prelude.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Prelude.lhs"}]},"method":"client/registerCapability","id":12}
2020-09-26 11:47:04.532914206 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Prelude.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Prelude.hs"}]},"method":"client/registerCapability","id":13}
2020-09-26 11:47:04.533079053 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Prelude.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Prelude.lhs"}]},"method":"client/registerCapability","id":14}
2020-09-26 11:47:04.53323164 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":6,"result":null}
2020-09-26 11:47:04.533308633 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/Map/Strict.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/Map/Strict.hs"}]},"method":"client/registerCapability","id":15}
2020-09-26 11:47:04.533441692 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":6,\"result\":null}"
2020-09-26 11:47:04.533512101 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/Map/Strict.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/Map/Strict.lhs"}]},"method":"client/registerCapability","id":16}
2020-09-26 11:47:04.533643342 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/Map/Strict.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/Map/Strict.hs"}]},"method":"client/registerCapability","id":17}
2020-09-26 11:47:04.533790399 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/Map/Strict.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/Map/Strict.lhs"}]},"method":"client/registerCapability","id":18}
2020-09-26 11:47:04.53395705 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/Map/Strict.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/Map/Strict.hs"}]},"method":"client/registerCapability","id":19}
2020-09-26 11:47:04.534103409 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/Map/Strict.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/Map/Strict.lhs"}]},"method":"client/registerCapability","id":20}
2020-09-26 11:47:04.534243897 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":7,"result":null}
2020-09-26 11:47:04.534336828 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":7,\"result\":null}"
2020-09-26 11:47:04.534338842 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/Map/Strict.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/Map/Strict.hs"}]},"method":"client/registerCapability","id":21}
2020-09-26 11:47:04.534517808 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/Map/Strict.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/Map/Strict.lhs"}]},"method":"client/registerCapability","id":22}
2020-09-26 11:47:04.534751146 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/Map/Strict.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/Map/Strict.hs"}]},"method":"client/registerCapability","id":23}
2020-09-26 11:47:04.534840734 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":8,"result":null}
2020-09-26 11:47:04.5348975 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":8,\"result\":null}"
2020-09-26 11:47:04.53498621 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/Map/Strict.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/Map/Strict.lhs"}]},"method":"client/registerCapability","id":24}
2020-09-26 11:47:04.535212103 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/List.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/List.hs"}]},"method":"client/registerCapability","id":25}
2020-09-26 11:47:04.535361192 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/List.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/src/Data/List.lhs"}]},"method":"client/registerCapability","id":26}
2020-09-26 11:47:04.535574618 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/List.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/List.hs"}]},"method":"client/registerCapability","id":27}
2020-09-26 11:47:04.535666087 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":9,"result":null}
2020-09-26 11:47:04.535741752 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":9,\"result\":null}"
2020-09-26 11:47:04.535913922 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/List.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/Data/List.lhs"}]},"method":"client/registerCapability","id":28}
2020-09-26 11:47:04.536062903 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/List.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/List.hs"}]},"method":"client/registerCapability","id":29}
2020-09-26 11:47:04.536228747 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/List.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/autogen/Data/List.lhs"}]},"method":"client/registerCapability","id":30}
2020-09-26 11:47:04.536450344 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/List.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/List.hs"}]},"method":"client/registerCapability","id":31}
2020-09-26 11:47:04.536657912 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/List.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/global-autogen/Data/List.lhs"}]},"method":"client/registerCapability","id":32}
2020-09-26 11:47:04.536744264 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":10,"result":null}
2020-09-26 11:47:04.536836661 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":10,\"result\":null}"
2020-09-26 11:47:04.537556414 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":11,"result":null}
2020-09-26 11:47:04.537660403 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":11,\"result\":null}"
2020-09-26 11:47:04.53768735 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/List.hs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/List.hs"}]},"method":"client/registerCapability","id":33}
2020-09-26 11:47:04.537859595 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"registrations":[{"registerOptions":{"watchers":[{"kind":5,"globPattern":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/List.lhs"}]},"method":"workspace/didChangeWatchedFiles","id":"/home/olivetti/Downloads/testesHaskell/contador/.stack-work/dist/x86_64-linux/Cabal-3.0.1.0/build/contador/contador-tmp/Data/List.lhs"}]},"method":"client/registerCapability","id":34}
2020-09-26 11:47:04.538028633 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":12,"result":null}
2020-09-26 11:47:04.538090266 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":12,\"result\":null}"
2020-09-26 11:47:04.538480889 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":13,"result":null}
2020-09-26 11:47:04.538560086 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":13,\"result\":null}"
2020-09-26 11:47:04.538855314 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":14,"result":null}
2020-09-26 11:47:04.538911589 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":14,\"result\":null}"
2020-09-26 11:47:04.539184207 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":15,"result":null}
2020-09-26 11:47:04.539258095 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":15,\"result\":null}"
2020-09-26 11:47:04.539565569 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":16,"result":null}
2020-09-26 11:47:04.539621983 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":16,\"result\":null}"
2020-09-26 11:47:04.539893627 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":17,"result":null}
2020-09-26 11:47:04.539967645 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":17,\"result\":null}"
2020-09-26 11:47:04.540273329 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":18,"result":null}
2020-09-26 11:47:04.540327681 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":18,\"result\":null}"
2020-09-26 11:47:04.540602089 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":19,"result":null}
2020-09-26 11:47:04.540672787 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":19,\"result\":null}"
2020-09-26 11:47:04.540972866 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":20,"result":null}
2020-09-26 11:47:04.541031466 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":20,\"result\":null}"
2020-09-26 11:47:04.541294886 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":21,"result":null}
2020-09-26 11:47:04.541372992 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":21,\"result\":null}"
2020-09-26 11:47:04.541673265 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":22,"result":null}
2020-09-26 11:47:04.541729558 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":22,\"result\":null}"
2020-09-26 11:47:04.542031014 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":23,"result":null}
2020-09-26 11:47:04.542106661 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":23,\"result\":null}"
2020-09-26 11:47:04.542365171 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":24,"result":null}
2020-09-26 11:47:04.542437451 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":24,\"result\":null}"
2020-09-26 11:47:04.542703631 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":25,"result":null}
2020-09-26 11:47:04.542790519 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":25,\"result\":null}"
2020-09-26 11:47:04.543107547 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":26,"result":null}
2020-09-26 11:47:04.543177664 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":26,\"result\":null}"
2020-09-26 11:47:04.543494851 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":27,"result":null}
2020-09-26 11:47:04.543568318 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":27,\"result\":null}"
2020-09-26 11:47:04.543833305 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":28,"result":null}
2020-09-26 11:47:04.543913679 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":28,\"result\":null}"
2020-09-26 11:47:04.54422872 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":29,"result":null}
2020-09-26 11:47:04.54430384 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":29,\"result\":null}"
2020-09-26 11:47:04.544624243 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":30,"result":null}
2020-09-26 11:47:04.544704824 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":30,\"result\":null}"
2020-09-26 11:47:04.544962129 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":31,"result":null}
2020-09-26 11:47:04.545038867 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":31,\"result\":null}"
2020-09-26 11:47:04.54536181 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":32,"result":null}
2020-09-26 11:47:04.545437535 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":32,\"result\":null}"
2020-09-26 11:47:04.54574663 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":33,"result":null}
2020-09-26 11:47:04.545834186 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":33,\"result\":null}"
2020-09-26 11:47:04.546096716 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":34,"result":null}
2020-09-26 11:47:04.546161378 [ThreadId 5] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":34,\"result\":null}"
2020-09-26 11:47:04.566612506 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","message":"3/4"},"token":"8"},"method":"$/progress"}
2020-09-26 11:47:04.617666728 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":"8"},"method":"$/progress"}
2020-09-26 11:47:04.617670402 [ThreadId 239] - finish: InitialLoad (took 0.09s)
2020-09-26 11:47:16.097001483 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":2,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":6,"character":0},"end":{"line":6,"character":0}},"rangeLength":0,"text":"\n"}]}}
2020-09-26 11:47:16.099898514 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:16.100502439 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:16.101104728 [ThreadId 73] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:16.545342989 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":3,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":6,"character":0},"end":{"line":6,"character":0}},"rangeLength":0,"text":"\n"}]}}
2020-09-26 11:47:16.547931467 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:16.54835595 [ThreadId 243] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:16.54828431 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:17.534835991 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":4,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":0},"end":{"line":7,"character":0}},"rangeLength":0,"text":"-"}]}}
2020-09-26 11:47:17.537428604 [ThreadId 320] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:17.537358947 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:17.538048089 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:17.54308936 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs","diagnostics":[{"severity":1,"range":{"start":{"line":9,"character":0},"end":{"line":9,"character":0}},"source":"parser","message":"parse error (possibly incorrect indentation or mismatched brackets)"}]},"method":"textDocument/publishDiagnostics"}
2020-09-26 11:47:17.695160937 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":5,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":1},"end":{"line":7,"character":1}},"rangeLength":0,"text":"-"}]}}
2020-09-26 11:47:17.697342039 [ThreadId 396] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:17.697315509 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:17.698041446 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:17.842508844 [ThreadId 7] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs","diagnostics":[]},"method":"textDocument/publishDiagnostics"}
2020-09-26 11:47:18.056156322 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":6,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":2},"end":{"line":7,"character":2}},"rangeLength":0,"text":" "}]}}
2020-09-26 11:47:18.058692523 [ThreadId 428] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:18.058670315 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:18.059346277 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:18.382770309 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":7,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":3},"end":{"line":7,"character":3}},"rangeLength":0,"text":">"}]}}
2020-09-26 11:47:18.385493885 [ThreadId 504] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:18.385869209 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:18.38643893 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:18.551857565 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":8,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":4},"end":{"line":7,"character":4}},"rangeLength":0,"text":">"}]}}
2020-09-26 11:47:18.55505063 [ThreadId 580] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:18.555352736 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:18.555648153 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:18.720153057 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":9,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":5},"end":{"line":7,"character":5}},"rangeLength":0,"text":">"}]}}
2020-09-26 11:47:18.723077056 [ThreadId 656] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:18.723460988 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:18.723910395 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:19.404932433 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":10,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":6},"end":{"line":7,"character":6}},"rangeLength":0,"text":" "}]}}
2020-09-26 11:47:19.407013601 [ThreadId 732] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:19.406991872 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:19.407597435 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:22.214905807 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":11,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":7},"end":{"line":7,"character":7}},"rangeLength":0,"text":"m"}]}}
2020-09-26 11:47:22.215578887 [ThreadId 808] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:22.215557173 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:22.215755578 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:22.279352183 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":1,"method":"textDocument/completion","params":{"textDocument":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"position":{"line":7,"character":8},"context":{"triggerKind":1}}}
2020-09-26 11:47:22.346404515 [ThreadId 967] - finish: C:ProduceCompletions (took 0.07s)
2020-09-26 11:47:22.346565805 [ThreadId 967] - finish: C:GetParsedModule (took 0.00s)
2020-09-26 11:47:22.406702858 [ThreadId 7] - <--2--{"result":[{"kind":9,"label":"M","tags":[]},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Just Main'*\n*\t*\t*\n\n"},"label":"contarMap","tags":[],"detail":":: String -> M.Map String Int"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Just Main'*\n*\t*\t*\n\n"},"label":"mostraEntrada","tags":[],"detail":":: (String, Int) -> IO ()"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Just Main'*\n*\t*\t*\n\n"},"label":"main","tags":[],"detail":":: IO ()"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe  `Monad`  class defines the basic operations over a  *monad* ,\na concept from a branch of mathematics known as  *category theory* .\nFrom the perspective of a Haskell programmer, however, it is best to\nthink of a monad as an  *abstract datatype*  of actions.\nHaskell's  `do`  expressions provide a convenient syntax for writing\nmonadic expressions. \n\nInstances of  `Monad`  should satisfy the following: \n+ **Left identity**: `\\`return\\`  a  \\`>>=\\`  k  =  k a`\n+ **Right identity**: `m  \\`>>=\\`   \\`return\\`   =  m`\n+ **Associativity**: `m  \\`>>=\\`  (\\x -> k x  \\`>>=\\`  h)  =  (m  \\`>>=\\`  k)  \\`>>=\\`  h`\n \n\nFurthermore, the  `Monad`  and  `Applicative`  operations should relate as follows: \n+ ```haskell\n  `pure`  =  `return`\n  ```\n\n+ ```haskell\n  ( `<*>` ) =  `ap`\n  ```\n\n \n\nThe above laws imply: \n+ ```haskell\n  `fmap`  f xs  =  xs  `>>=`   `return`  . f\n  ```\n\n+ ```haskell\n  ( `>>` ) = ( `*>` )\n  ```\n\n \n\nand that  `pure`  and ( `<*>` ) satisfy the applicative functor laws. \n\nThe instances of  `Monad`  for lists,  `Data.Maybe.Maybe`  and  `System.IO.IO` \ndefined in the  `Prelude`  satisfy these laws.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#t:Monad)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#Monad)"},"label":"Monad","tags":[],"detail":":: (* -> *) -> Constraint"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe class of monoids (types with an associative binary operation that\n has an identity).  Instances should satisfy the following: \n+ **Right identity**: `x  \\`<>\\`   \\`mempty\\`  = x`\n+ **Left identity**: `\\`mempty\\`   \\`<>\\`  x = x`\n+ **Associativity**: `x  \\`<>\\`  (y  \\`<>\\`  z) = (x  \\`<>\\`  y)  \\`<>\\`  z`  ( `Semigroup`  law)\n+ **Concatenation**: `\\`mconcat\\`  =  \\`foldr\\`  ( \\`<>\\` )  \\`mempty\\``\n \n\nThe method names refer to the monoid of lists under concatenation,\n but there are many other instances. \n\nSome types can be viewed as a monoid in more than one way,\n e.g. both addition and multiplication on numbers.\n In such cases we often define  `newtype` s and make those instances\n of  `Monoid` , e.g.  `Data.Semigroup.Sum`  and  `Data.Semigroup.Product` . \n\n**NOTE** :  `Semigroup`  is a superclass of  `Monoid`  since  *base-4.11.0.0* .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#t:Monoid)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#Monoid)"},"label":"Monoid","tags":[],"detail":":: * -> Constraint"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe class of semigroups (types with an associative binary operation). \n\nInstances should satisfy the following: \n+ **Associativity**: `x  \\`<>\\`  (y  \\`<>\\`  z) = (x  \\`<>\\`  y)  \\`<>\\`  z`\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#t:Semigroup)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#Semigroup)"},"label":"Semigroup","tags":[],"detail":":: * -> Constraint"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nClass  `Enum`  defines operations on sequentially ordered types. \n\nThe  `enumFrom` ... methods are used in Haskell's translation of\n arithmetic sequences. \n\nInstances of  `Enum`  may be derived for any enumeration type (types\n whose constructors have no fields).  The nullary constructors are\n assumed to be numbered left-to-right by  `fromEnum`  from  `0`  through  `n-1` .\n See Chapter 10 of the  *Haskell Report*  for more details. \n\nFor any type that is an instance of class  `Bounded`  as well as  `Enum` ,\n the following should hold: \n+ The calls  `\\`succ\\`   \\`maxBound\\``  and  `\\`pred\\`   \\`minBound\\``  should result in\n  a runtime error.\n\n+ `fromEnum`  and  `toEnum`  should give a runtime error if the\n  result value is not representable in the result type.\n  For example,  `\\`toEnum\\`  7 ::  \\`Bool\\``  is an error.\n\n+ `enumFrom`  and  `enumFromThen`  should be defined with an implicit bound,\n  thus:\n\n \n```haskell\n   enumFrom     x   = enumFromTo     x maxBound\n   enumFromThen x y = enumFromThenTo x y bound\n     where\n       bound | fromEnum y >= fromEnum x = maxBound\n             | otherwise                = minBound\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#t:Enum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#Enum)"},"label":"Enum","tags":[],"detail":":: * -> Constraint"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nBasic numeric class. \n\nThe Haskell Report defines no laws for  `Num` . However,  `( \\`+\\` )`  and  `( \\`*\\` )`  are\n customarily expected to define a ring and have the following properties: \n+ ****Associativity of  `( \\`+\\` )`****: `(x + y) + z`  =  `x + (y + z)`\n+ ****Commutativity of  `( \\`+\\` )`****: `x + y`  =  `y + x`\n+ ****`\\`fromInteger\\`  0`  is the additive identity****: `x + fromInteger 0`  =  `x`\n+ ****`negate`  gives the additive inverse****: `x + negate x`  =  `fromInteger 0`\n+ ****Associativity of  `( \\`*\\` )`****: `(x * y) * z`  =  `x * (y * z)`\n+ ****`\\`fromInteger\\`  1`  is the multiplicative identity****: `x * fromInteger 1`  =  `x`  and  `fromInteger 1 * x`  =  `x`\n+ ****Distributivity of  `( \\`*\\` )`  with respect to  `( \\`+\\` )`****: `a * (b + c)`  =  `(a * b) + (a * c)`  and  `(b + c) * a`  =  `(b * a) + (c * a)`\n \n\nNote that it  *isn't*  customarily expected that a type instance of both  `Num` \n and  `Ord`  implement an ordered ring. Indeed, in  `base`  only  `Integer`  and\n  `Data.Ratio.Rational`  do.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Num.html#t:Num)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Num.html#Num)"},"label":"Num","tags":[],"detail":":: * -> Constraint"},{"kind":22,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe  `Maybe`  type encapsulates an optional value.  A value of type\n  `\\`Maybe\\`  a`  either contains a value of type  `a`  (represented as  `\\`Just\\`  a` ),\n or it is empty (represented as  `Nothing` ).  Using  `Maybe`  is a good way to\n deal with errors or exceptional cases without resorting to drastic\n measures such as  `Prelude.error` . \n\nThe  `Maybe`  type is also a monad.  It is a simple kind of error\n monad, where all errors are represented by  `Nothing` .  A richer\n error monad can be built using the  `Data.Either.Either`  type.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Maybe.html#t:Maybe)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Maybe.html#Maybe)"},"label":"Maybe","tags":[],"detail":":: * -> *"},{"kind":7,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nWhen a value is bound in  `do` -notation, the pattern on the left\n hand side of  `<-`  might not match. In this case, this class\n provides a function to recover. \n\nA  `Monad`  without a  `MonadFail`  instance may only be used in conjunction\n with pattern that always match, such as newtypes, tuples, data types with\n only a single data constructor, and irrefutable patterns ( `~pat` ). \n\nInstances of  `MonadFail`  should satisfy the following law:  `fail s`  should\n be a left zero for  `Control.Monad.>>=` , \n```haskell\nfail s >>= f  =  fail s\n\n```\n \n\nIf your  `Monad`  is also  `Control.Monad.MonadPlus` , a popular definition is \n```haskell\nfail _ = mzero\n\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Control-Monad-Fail.html#t:MonadFail)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Control-Monad-Fail.html#MonadFail)"},"label":"MonadFail","tags":[],"detail":":: (* -> *) -> Constraint"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nMap each element of a structure to a monadic action, evaluate\n these actions from left to right, and ignore the results. For a\n version that doesn't ignore the results see\n  `Data.Traversable.mapM` . \n\nAs of base 4.8.0.0,  `mapM_`  is just  `traverse_` , specialized to\n  `Monad` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:mapM_)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#mapM_)"},"label":"mapM_","tags":[],"detail":":: (Foldable t, Monad m) =>\n(a -> m b) -> t a -> m ()"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nMap a function over all the elements of a container and concatenate\n the resulting lists.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:concatMap)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#concatMap)"},"label":"concatMap","tags":[],"detail":":: Foldable t => (a -> [b]) -> t a -> [b]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nMap a function over all the elements of a container and concatenate\n the resulting lists.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:concatMap)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#concatMap)"},"label":"concatMap","tags":[],"detail":":: Foldable t => (a -> [b]) -> t a -> [b]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nDoes the element occur in the structure?*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:elem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#elem)"},"label":"elem","tags":[],"detail":":: (Foldable t, Eq a) => a -> t a -> Bool"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nDoes the element occur in the structure?*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:elem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#elem)"},"label":"elem","tags":[],"detail":":: (Foldable t, Eq a) => a -> t a -> Bool"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nMap each element of the structure to a monoid,\n and combine the results.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:foldMap)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#foldMap)"},"label":"foldMap","tags":[],"detail":":: (Foldable t, Monoid m) =>\n(a -> m) -> t a -> m"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe largest element of a non-empty structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:maximum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#maximum)"},"label":"maximum","tags":[],"detail":":: (Foldable t, Ord a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe largest element of a non-empty structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:maximum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#maximum)"},"label":"maximum","tags":[],"detail":":: (Foldable t, Ord a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe least element of a non-empty structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:minimum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#minimum)"},"label":"minimum","tags":[],"detail":":: (Foldable t, Ord a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe least element of a non-empty structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:minimum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#minimum)"},"label":"minimum","tags":[],"detail":":: (Foldable t, Ord a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\n`notElem`  is the negation of  `elem` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:notElem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#notElem)"},"label":"notElem","tags":[],"detail":":: (Foldable t, Eq a) => a -> t a -> Bool"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\n`notElem`  is the negation of  `elem` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:notElem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#notElem)"},"label":"notElem","tags":[],"detail":":: (Foldable t, Eq a) => a -> t a -> Bool"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `sum`  function computes the sum of the numbers of a structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:sum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#sum)"},"label":"sum","tags":[],"detail":":: (Foldable t, Num a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe  `sum`  function computes the sum of the numbers of a structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:sum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#sum)"},"label":"sum","tags":[],"detail":":: (Foldable t, Num a) => t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nThe  `maybe`  function takes a default value, a function, and a  `Maybe` \n value.  If the  `Maybe`  value is  `Nothing` , the function returns the\n default value.  Otherwise, it applies the function to the value inside\n the  `Just`  and returns the result. #### **Examples** \n\nBasic usage: \n```haskell\n>>> maybe False odd (Just 3)\nTrue\n\n\n```\n \n```haskell\n>>> maybe False odd Nothing\nFalse\n\n\n```\n \n\nRead an integer from a string using  `Text.Read.readMaybe` . If we succeed,\n return twice the integer; that is, apply  `(*2)`  to it. If instead\n we fail to parse an integer, return  `0`  by default: \n```haskell\n>>> import Text.Read ( readMaybe )\n\n>>> maybe 0 (*2) (readMaybe \"5\")\n10\n\n>>> maybe 0 (*2) (readMaybe \"\")\n0\n\n\n```\n \n\nApply  `Prelude.show`  to a  `Maybe Int` . If we have  `Just n` , we want to show\n the underlying  `Int`   `n` . But if we have  `Nothing` , we return the\n empty string instead of (for example) \"Nothing\": \n```haskell\n>>> maybe \"\" show (Just 5)\n\"5\"\n\n>>> maybe \"\" show Nothing\n\"\"\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Maybe.html#v:maybe)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Maybe.html#maybe)"},"label":"maybe","tags":[],"detail":":: b -> (a -> b) -> Maybe a -> b"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nMap each element of a structure to a monadic action, evaluate\n these actions from left to right, and collect the results. For\n a version that ignores the results see  `Data.Foldable.mapM_` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Traversable.html#v:mapM)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Traversable.html#mapM)"},"label":"mapM","tags":[],"detail":":: (Traversable t, Monad m) =>\n(a -> m b) -> t a -> m (t b)"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:fmap)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#fmap)"},"label":"fmap","tags":[],"detail":":: Functor f => (a -> b) -> f a -> f b"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\n*O(n)* .  `map`   `f xs`  is the list obtained by applying  `f`  to each element\n of  `xs` , i.e., \n```haskell\nmap f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]\nmap f [x1, x2, ...] == [f x1, f x2, ...]\n```\n \n```haskell\n>>> map (+1) [1, 2, 3]\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:map)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#map)"},"label":"map","tags":[],"detail":":: (a -> b) -> [a] -> [b]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\n*O(n)* .  `map`   `f xs`  is the list obtained by applying  `f`  to each element\n of  `xs` , i.e., \n```haskell\nmap f [x1, x2, ..., xn] == [f x1, f x2, ..., f xn]\nmap f [x1, x2, ...] == [f x1, f x2, ...]\n```\n \n```haskell\n>>> map (+1) [1, 2, 3]\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:map)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#map)"},"label":"map","tags":[],"detail":":: (a -> b) -> [a] -> [b]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nAn associative operation \n\n**NOTE** : This method is redundant and has the default\n implementation  `\\`mappend\\`  = ( \\`<>\\` )`  since  *base-4.11.0.0* .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:mappend)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#mappend)"},"label":"mappend","tags":[],"detail":":: Monoid a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nFold a list using the monoid. \n\nFor most types, the default definition for  `mconcat`  will be\n used, but the function is included in the class definition so\n that an optimized version can be provided for specific types.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:mconcat)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#mconcat)"},"label":"mconcat","tags":[],"detail":":: Monoid a => [a] -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nIdentity of  `mappend`*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Base.html#v:mempty)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Base.html#mempty)"},"label":"mempty","tags":[],"detail":":: Monoid a => a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nUsed in Haskell's translation of  `[n..]`  with  `[n..] = enumFrom n` ,\n   a possible implementation being  `enumFrom n = n : enumFrom (succ n)` .\n   For example: \n+ ```haskell\n  enumFrom 4 :: [Integer] = [4,5,6,7,...]\n  ```\n\n+ ```haskell\n  enumFrom 6 :: [Int] = [6,7,8,9,...,maxBound :: Int]\n  ```\n\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:enumFrom)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#enumFrom)"},"label":"enumFrom","tags":[],"detail":":: Enum a => a -> [a]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nUsed in Haskell's translation of  `[n,n'..]` \n   with  `[n,n'..] = enumFromThen n n'` , a possible implementation being\n    `enumFromThen n n' = n : n' : worker (f x) (f x n')` ,\n    `worker s v = v : worker s (s v)` ,  `x = fromEnum n' - fromEnum n`  and\n    `f n y\n     | n > 0 = f (n - 1) (succ y)\n     | n < 0 = f (n + 1) (pred y)\n     | otherwise = y` \n   For example: \n+ ```haskell\n  enumFromThen 4 6 :: [Integer] = [4,6,8,10...]\n  ```\n\n+ ```haskell\n  enumFromThen 6 2 :: [Int] = [6,2,-2,-6,...,minBound :: Int]\n  ```\n\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:enumFromThen)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#enumFromThen)"},"label":"enumFromThen","tags":[],"detail":":: Enum a => a -> a -> [a]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nUsed in Haskell's translation of  `[n,n'..m]`  with\n    `[n,n'..m] = enumFromThenTo n n' m` , a possible implementation\n   being  `enumFromThenTo n n' m = worker (f x) (c x) n m` ,\n    `x = fromEnum n' - fromEnum n` ,  `c x = bool (>=) ( [(x](=))  0)` \n    `f n y\n      | n > 0 = f (n - 1) (succ y)\n      | n < 0 = f (n + 1) (pred y)\n      | otherwise = y`  and\n    `worker s c v m\n      | c v m = v : worker s c (s v) m\n      | otherwise = []` \n   For example: \n+ ```haskell\n  enumFromThenTo 4 2 -6 :: [Integer] = [4,2,0,-2,-4,-6]\n  ```\n\n+ ```haskell\n  enumFromThenTo 6 8 2 :: [Int] = []\n  ```\n\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:enumFromThenTo)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#enumFromThenTo)"},"label":"enumFromThenTo","tags":[],"detail":":: Enum a => a -> a -> a -> [a]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nUsed in Haskell's translation of  `[n..m]`  with\n    `[n..m] = enumFromTo n m` , a possible implementation being\n    `enumFromTo n m\n      | n <= m = n : enumFromTo (succ n) m\n      | otherwise = []` .\n   For example: \n+ ```haskell\n  enumFromTo 6 10 :: [Int] = [6,7,8,9,10]\n  ```\n\n+ ```haskell\n  enumFromTo 42 1 :: [Integer] = []\n  ```\n\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:enumFromTo)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#enumFromTo)"},"label":"enumFromTo","tags":[],"detail":":: Enum a => a -> a -> [a]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nConvert to an  `Int` .\n It is implementation-dependent what  `fromEnum`  returns when\n applied to a value that is too large to fit in an  `Int` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:fromEnum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#fromEnum)"},"label":"fromEnum","tags":[],"detail":":: Enum a => a -> Int"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:maxBound)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#maxBound)"},"label":"maxBound","tags":[],"detail":":: Bounded a => a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:minBound)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#minBound)"},"label":"minBound","tags":[],"detail":":: Bounded a => a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nConvert from an  `Int` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Enum.html#v:toEnum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Enum.html#toEnum)"},"label":"toEnum","tags":[],"detail":":: Enum a => Int -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\n`True`  if the argument is too small to be represented in\n normalized format*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Float.html#v:isDenormalized)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Float.html#isDenormalized)"},"label":"isDenormalized","tags":[],"detail":":: RealFloat a => a -> Bool"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nConversion from an  `Integer` .\n An integer literal represents the application of the function\n  `fromInteger`  to the appropriate value of type  `Integer` ,\n so such literals have type  `( \\`Num\\`  a) => a` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Num.html#v:fromInteger)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Num.html#fromInteger)"},"label":"fromInteger","tags":[],"detail":":: Num a => Integer -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nSign of a number.\n The functions  `abs`  and  `signum`  should satisfy the law: \n```haskell\nabs x * signum x == x\n```\n \n\nFor real numbers, the  `signum`  is either  `-1`  (negative),  `0`  (zero)\n or  `1`  (positive).*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Num.html#v:signum)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Num.html#signum)"},"label":"signum","tags":[],"detail":":: Num a => a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nsimultaneous  `div`  and  `mod`*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:divMod)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#divMod)"},"label":"divMod","tags":[],"detail":":: Integral a => a -> a -> (a, a)"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\ngeneral coercion from integral types*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:fromIntegral)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#fromIntegral)"},"label":"fromIntegral","tags":[],"detail":":: (Integral a, Num b) => a -> b"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nConversion from a  `Rational`  (that is  `\\`Ratio\\`   \\`Integer\\`` ).\n A floating literal stands for an application of  `fromRational` \n to a value of type  `Rational` , so such literals have type\n  `( \\`Fractional\\`  a) => a` .*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:fromRational)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#fromRational)"},"label":"fromRational","tags":[],"detail":":: Fractional a => Rational -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\n`\\`lcm\\`  x y`  is the smallest positive integer that both  `x`  and  `y`  divide.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:lcm)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#lcm)"},"label":"lcm","tags":[],"detail":":: Integral a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\ninteger modulus, satisfying \n```haskell\n(x `div` y)*y + (x `mod` y) == x\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:mod)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#mod)"},"label":"mod","tags":[],"detail":":: Integral a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\nsimultaneous  `quot`  and  `rem`*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:quotRem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#quotRem)"},"label":"quotRem","tags":[],"detail":":: Integral a => a -> a -> (a, a)"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n\ninteger remainder, satisfying \n```haskell\n(x `quot` y)*y + (x `rem` y) == x\n```\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/GHC-Real.html#v:rem)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/GHC-Real.html#rem)"},"label":"rem","tags":[],"detail":":: Integral a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/GHC-Classes.html#v:compare)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/src/GHC-Classes.html#compare)"},"label":"compare","tags":[],"detail":":: Ord a => a -> a -> Ordering"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/GHC-Classes.html#v:max)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/src/GHC-Classes.html#max)"},"label":"max","tags":[],"detail":":: Ord a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Prelude'*\n*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/GHC-Classes.html#v:min)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/ghc-prim-0.5.3/src/GHC-Classes.html#min)"},"label":"min","tags":[],"detail":":: Ord a => a -> a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe largest element of a non-empty structure with respect to the\n given comparison function.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:maximumBy)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#maximumBy)"},"label":"maximumBy","tags":[],"detail":":: Foldable t =>\n(a -> a -> Ordering) -> t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe least element of a non-empty structure with respect to the\n given comparison function.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Foldable.html#v:minimumBy)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Foldable.html#minimumBy)"},"label":"minimumBy","tags":[],"detail":":: Foldable t =>\n(a -> a -> Ordering) -> t a -> a"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `elemIndex`  function returns the index of the first element\n in the given list which is equal (by  `==` ) to the query element,\n or  `Nothing`  if there is no such element. \n```haskell\n>>> elemIndex 4 [0..]\nJust 4\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-OldList.html#elemIndex)"},"label":"elemIndex","tags":[],"detail":":: Eq a => a -> [a] -> Maybe Int"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `elemIndices`  function extends  `elemIndex` , by returning the\n indices of all elements equal to the query element, in ascending order. \n```haskell\n>>> elemIndices 'o' \"Hello World\"\n[4,7]\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-OldList.html#elemIndices)"},"label":"elemIndices","tags":[],"detail":":: Eq a => a -> [a] -> [Int]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `permutations`  function returns the list of all permutations of the argument. \n```haskell\n>>> permutations \"abc\"\n[\"abc\",\"bac\",\"cba\",\"bca\",\"cab\",\"acb\"]\n\n\n```\n*\t*\t*\n\n*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-OldList.html#permutations)"},"label":"permutations","tags":[],"detail":":: [a] -> [[a]]"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `mapAccumL`  function behaves like a combination of  `fmap` \n and  `Data.Foldable.foldl` ; it applies a function to each element of a structure,\n passing an accumulating parameter from left to right, and returning\n a final value of this accumulator together with the new structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Traversable.html#v:mapAccumL)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Traversable.html#mapAccumL)"},"label":"mapAccumL","tags":[],"detail":":: Traversable t =>\n(a -> b -> (a, c)) -> a -> t b -> (a, t c)"},{"kind":3,"insertTextFormat":1,"documentation":{"kind":"markdown","value":"*Defined in 'Data.List'*\n*\t*\t*\n\n\nThe  `mapAccumR`  function behaves like a combination of  `fmap` \n and  `Data.Foldable.foldr` ; it applies a function to each element of a structure,\n passing an accumulating parameter from right to left, and returning\n a final value of this accumulator together with the new structure.*\t*\t*\n\n*\t*\t*\n[Documentation](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/Data-Traversable.html#v:mapAccumR)*\t*\t*\n[Source](file:///home/olivetti/.stack/programs/x86_64-linux/ghc-8.8.4/share/doc/ghc-8.8.4/html/libraries/base-4.13.0.0/src/Data-Traversable.html#mapAccumR)"},"label":"mapAccumR","tags":[],"detail":":: Traversable t =>\n(a -> b -> (a, c)) -> a -> t b -> (a, t c)"},{"kind":14,"label":"family","tags":[]},{"kind":14,"label":"mdo","tags":[]},{"kind":14,"label":"import","tags":[]},{"kind":14,"label":"module","tags":[]}],"jsonrpc":"2.0","id":1}
2020-09-26 11:47:23.748769149 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didChange","params":{"textDocument":{"version":12,"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"contentChanges":[{"range":{"start":{"line":7,"character":8},"end":{"line":7,"character":8}},"rangeLength":0,"text":"ain"}]}}
2020-09-26 11:47:23.749563883 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:23.749720295 [ThreadId 884] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:23.749753769 [ThreadId 17] - Modified text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:24.380652753 [ThreadId 5] - ---> {"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs","version":12}}}
2020-09-26 11:47:24.382025781 [ThreadId 972] - Finishing build session(exception: AsyncCancelled)
2020-09-26 11:47:24.382000139 [ThreadId 17] - Restarting build session (aborting the previous one took 0.00s)
2020-09-26 11:47:24.382728808 [ThreadId 17] - Saved text document: file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:24.399910647 [ThreadId 1119] - Typechecking reverse dependencies forNormalizedFilePath "/home/olivetti/Downloads/testesHaskell/contador/src/Main.hs": []
2020-09-26 11:47:24.400385673 [ThreadId 1119] - finish: ParentTC (took 0.02s)
2020-09-26 11:47:24.68150662 [ThreadId 5] - ---> {"jsonrpc":"2.0","id":2,"method":"textDocument/documentHighlight","params":{"textDocument":{"uri":"file:///home/olivetti/Downloads/testesHaskell/contador/src/Main.hs"},"position":{"line":7,"character":10}}}
2020-09-26 11:47:24.681966093 [ThreadId 1121] - DocumentHighlight request at position 8:11 in file: /home/olivetti/Downloads/testesHaskell/contador/src/Main.hs
2020-09-26 11:47:24.682258812 [ThreadId 1119] - finish: C:GetHieFile (took 0.00s)
2020-09-26 11:47:24.682476199 [ThreadId 7] - <--2--{"result":[],"jsonrpc":"2.0","id":2}

@googleson78
Copy link
Contributor

I think this is some coc issue/question - here's a gist that shows how the log looks when I open a file and execute the eval action successfully (there's the evalCommand and runEvalCommand parts).
The file I'm using, for reference:

module Main where
-- >>> 3 + 5

@folivetti
Copy link
Author

@googleson78 would you mind sharing the relevant parts of your LanguageClient-neovim on vimrc?

@googleson78
Copy link
Contributor

This is my config.

@folivetti
Copy link
Author

thanks! It works with LanguageClient-neovim. I'll open an issue in coc

@jneira jneira added component: hls-eval-plugin editor: vim/neovim type: support User support tickets, questions, help with setup etc. labels Sep 26, 2020
@jneira
Copy link
Member

jneira commented Sep 26, 2020

@tek the config shared by @googleson78 works for you?
@folivetti do you think something is left to do here?

@jneira jneira added the status: needs info Not actionable, because there's missing information label Sep 26, 2020
@folivetti
Copy link
Author

@tek the config shared by @googleson78 works for you?
@folivetti do you think something is left to do here?

only if you want to investigate the issue with coc even further (I'm assuming is an issue from coc side, but I'm not sure). From my part I'll use LanguageClient-neovim from now on. So feel free to close it if you want to :)

@tek
Copy link
Contributor

tek commented Sep 26, 2020

can be closed from my end!

@maralorn
Copy link
Contributor

maralorn commented Oct 8, 2020

I‘d like to report, that I can run the eval code lens in coc-nvim. So it is at least not completely broken.

pepeiborra pushed a commit that referenced this issue Dec 27, 2020
* Add a .editorconfig

* Move to https
@jneira jneira removed the status: needs info Not actionable, because there's missing information label Jan 18, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
component: hls-eval-plugin type: support User support tickets, questions, help with setup etc.
Projects
None yet
Development

No branches or pull requests

5 participants