haskell / haskell-ide-engine

The engine for haskell ide-integration. Not an IDE
BSD 3-Clause "New" or "Revised" License
2.38k stars 210 forks source link

Type signatures are doubled and no hoogle info is displayed #1796

Open kanashimia opened 4 years ago

kanashimia commented 4 years ago

On reload it quickly fixes itself for one moment (thats how i took that photo). After some time (switching between projects) it goes back to normal but on save is doubles again. GHCIDE works as expected (so i dont think that this is hie-bios related).

This only happends to some of the functions; base and other packages are affected too.

Output ``` 2020-01-23 00:26:04.3421894 [ThreadId 3] - run entered for hie-wrapper(hie-wrapper) Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 00:26:04.345193 [ThreadId 3] - Current directory:c:\Projects 2020-01-23 00:26:04.345193 [ThreadId 3] - Operating system:mingw32 2020-01-23 00:26:04.3461925 [ThreadId 3] - args:["--lsp"] 2020-01-23 00:26:04.3491904 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-23 00:26:04.3501895 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-23 00:26:04.3501895 [ThreadId 3] - Cradle directory:c:\Projects 2020-01-23 00:26:04.3511903 [ThreadId 3] - Use Plain GHC 2020-01-23 00:26:04.4221882 [ThreadId 3] - Project GHC version:8.6.5 2020-01-23 00:26:04.423188 [ThreadId 3] - hie exe candidates :["hie-8.6.5.exe","hie-8.6.exe","hie.exe"] 2020-01-23 00:26:04.4261869 [ThreadId 3] - found hie exe at:C:\Users\nikita\AppData\Roaming\local\bin\hie.exe 2020-01-23 00:26:04.4261869 [ThreadId 3] - args:["--lsp"] 2020-01-23 00:26:04.4271929 [ThreadId 3] - launching .... 2020-01-23 00:26:04.4471857 [ThreadId 3] - Run entered for HIE(hie.exe) Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 00:26:04.4491863 [ThreadId 3] - Operating as a LSP server on stdio 2020-01-23 00:26:04.4491863 [ThreadId 3] - Current directory:c:\Projects 2020-01-23 00:26:04.4491863 [ThreadId 3] - Operating system:mingw32 2020-01-23 00:26:04.4491863 [ThreadId 3] - args:["--lsp"] 2020-01-23 00:26:04.454186 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-23 00:26:04.454186 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-23 00:26:04.454186 [ThreadId 3] - Use Plain GHC 2020-01-23 00:26:04.5261893 [ThreadId 8] - Use Plain GHC Using hie version: Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 00:26:04.6742148 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 00:26:04.6751911 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 00:26:04.6751911 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} Using hoogle db at: C:\Users\nikita\AppData\Roaming\hoogle\default-haskell-5.0.17.hoo 2020-01-23 00:26:05.8634127 [ThreadId 21] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 00:26:05.8664137 [ThreadId 21] - Boids> initial-build-steps (lib + exe) 2020-01-23 00:26:06.3154736 [ThreadId 21] - Configuring GHCi with the following packages: Boids 2020-01-23 00:26:07.3131465 [ThreadId 29] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 00:26:08.1201441 [ThreadId 17] - Cradle set succesfully 2020-01-23 00:26:08.2411491 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 00:26:08.2421456 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 00:26:08.2421456 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 00:26:09.3223579 [ThreadId 47] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 00:26:09.3253124 [ThreadId 47] - Boids> initial-build-steps (lib + exe) 2020-01-23 00:26:09.751341 [ThreadId 47] - Configuring GHCi with the following packages: Boids 2020-01-23 00:26:10.5797295 [ThreadId 54] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 00:26:10.6246825 [ThreadId 43] - Cradle set succesfully ```
Photoes ![GOOD](https://lh3.googleusercontent.com/VOoGH8XsfR7Z9H_HZCu14o6MG9uP_L8OWyC1yW6N5eb7fcY3Xa1wA1y02amGkdwMHb53Md352jXjRFRrb3rcFYOom9q-tlUrQNSvrC-oMJc213whyCXnNVx2Hce26qLoxAllkGzmZQ=w1723-h969-no) ![BAD](https://lh3.googleusercontent.com/I2HceuCFwuIbY3jqyNFRgn7GsxiUWhDPBYpENhts4tSaefRWjOd5ffRSF9oE26yBftsyvZUX8ebyenPWy2klKxXM2hGFdWaw9elNvnT8h2WhiVPPSA5UFSFsAAlKGyxspYjfEW3KHw=w1723-h969-no)

EDIT: also types are displayed like: _ :: IO () and not main :: IO () (at least some)

fendor commented 4 years ago

Interesting, maybe related to https://github.com/haskell/haskell-ide-engine/issues/1567?

kanashimia commented 4 years ago

Yeah, it seems like it.

fendor commented 4 years ago

Can you also try to run in --debug mode and link the logs of the full process, e.g. first it works, then it doesnt? Either by defining a custom hie-wrapper path that sets the the flag --debug or by setting in vscode "Haskell Language Server > Language Server Haskell > Trace : Server" to "verbose".

kanashimia commented 4 years ago
LOG ``` 2020-01-23 01:13:13.9190259 [ThreadId 3] - run entered for hie-wrapper(hie-wrapper) Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 01:13:13.9210265 [ThreadId 3] - Current directory:c:\Projects 2020-01-23 01:13:13.9220294 [ThreadId 3] - Operating system:mingw32 2020-01-23 01:13:13.9220294 [ThreadId 3] - args:["--lsp","-d","--vomit"] 2020-01-23 01:13:13.9250175 [ThreadId 3] - Cabal-Helper found these projects: [] 2020-01-23 01:13:13.9260257 [ThreadId 3] - These projects have the build tools installed: [] 2020-01-23 01:13:13.9260257 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-23 01:13:13.9270221 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-23 01:13:13.9270221 [ThreadId 3] - Cradle directory:c:\Projects 2020-01-23 01:13:13.9280259 [ThreadId 3] - Use Plain GHC 2020-01-23 01:13:14.0010161 [ThreadId 3] - GHC Output: "Just "8.6.5"" 2020-01-23 01:13:14.0020186 [ThreadId 3] - Project GHC version:8.6.5 2020-01-23 01:13:14.0020186 [ThreadId 3] - hie exe candidates :["hie-8.6.5.exe","hie-8.6.exe","hie.exe"] 2020-01-23 01:13:14.0060199 [ThreadId 3] - found hie exe at:C:\Users\nikita\AppData\Roaming\local\bin\hie.exe 2020-01-23 01:13:14.0070545 [ThreadId 3] - args:["--lsp","-d","--vomit"] 2020-01-23 01:13:14.0070545 [ThreadId 3] - launching .... 2020-01-23 01:13:14.033059 [ThreadId 3] - Run entered for HIE(hie.exe) Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 01:13:14.0350576 [ThreadId 3] - Operating as a LSP server on stdio 2020-01-23 01:13:14.0350576 [ThreadId 3] - Current directory:c:\Projects 2020-01-23 01:13:14.0350576 [ThreadId 3] - Operating system:mingw32 2020-01-23 01:13:14.0350576 [ThreadId 3] - args:["--lsp","-d","--vomit"] 2020-01-23 01:13:14.0350576 [ThreadId 3] - Enabling verbose mode for hie-bios. This option currently doesn't do anything. 2020-01-23 01:13:14.0350576 [ThreadId 3] - haskell-lsp:Starting up server ... 2020-01-23 01:13:14.0370182 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":2788,"clientInfo":{"name":"vscode","version":"1.41.1"},"rootPath":"c:\\Projects","rootUri":"file:///c%3A/Projects","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]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"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,"tagSupport":{"valueSet":[1]}},"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}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":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},"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,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true}},"window":{"workDoneProgress":true}},"trace":"off","workspaceFolders":[{"uri":"file:///c%3A/Projects","name":"Projects"}]}} 2020-01-23 01:13:14.0390276 [ThreadId 3] - haskell-lsp:initializeRequestHandler: setting current dir to project root:c:\Projects 2020-01-23 01:13:14.116019 [ThreadId 3] - Dummy Cradle file result: c:\Projects\File.hs 2020-01-23 01:13:14.1170202 [ThreadId 3] - Cabal-Helper found these projects: [] 2020-01-23 01:13:14.1170202 [ThreadId 3] - These projects have the build tools installed: [] 2020-01-23 01:13:14.1170202 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-23 01:13:14.1170202 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-23 01:13:14.1180183 [ThreadId 3] - Use Plain GHC 2020-01-23 01:13:14.1970202 [ThreadId 3] - GHC Output: "Just "8.6.5"" 2020-01-23 01:13:14.1980186 [ThreadId 8] - Use Plain GHC 2020-01-23 01:13:14.1980186 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.2050189 [ThreadId 4] - <--2--{"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"willSave":false,"willSaveWaitUntil":false,"save":{"includeText":false}},"workspace":{},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["7052:applyrefact:applyOne","7052:applyrefact:applyAll","7052:generic:type","7052:ghcmod:check","7052:ghcmod:type","7052:ghcmod:casesplit","7052:hsimport:import","7052:package:add","7052:pragmas:addPragma"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":true},"documentSymbolProvider":true,"documentFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0","id":0} 2020-01-23 01:13:14.217017 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"initialized","params":{}} 2020-01-23 01:13:14.217017 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"languageServerHaskell":{"hlintOn":true,"maxNumberOfProblems":100,"diagnosticsOnChange":true,"liquidOn":false,"completionSnippetsOn":true,"formatOnImportOn":true,"formattingProvider":"brittany","hieExecutablePath":"","useCustomHieWrapper":false,"useCustomHieWrapperPath":"","noLspParam":false,"showTypeForSelection":{"onHover":true,"command":{"location":"dropdown"}},"trace":{"server":"verbose"},"logFile":"","enableHIE":true}}}} 2020-01-23 01:13:14.2180202 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs","languageId":"haskell","version":1,"text":"import Control.Monad ( unless )\nimport System.Exit ( exitWith, ExitCode(ExitSuccess) )\nimport Graphics.UI.GLUT hiding ( initialize )\n\n--------------------------------------------------------------------------------\n-- Setup GLUT and OpenGL, drop into the event loop.\n--------------------------------------------------------------------------------\nmain :: IO ()\nmain = do\n -- Setup the basic GLUT stuff\n _ <- getArgsAndInitialize\n initialDisplayMode $=\n [ DoubleBuffered\n , WithDepthBuffer\n , WithSamplesPerPixel 4\n ]\n\n -- Create the window\n initialWindowSize $= Size 1024 768\n initialWindowPosition $= Position 100 150\n _ <- createWindow \"BOGLGP - Chapter 1 - Simple\"\n\n initialize\n\n -- Register the event callback functions\n displayCallback $= display\n reshapeCallback $= Just reshape\n keyboardMouseCallback $= Just keyboardMouseHandler\n -- No need for an idle callback here, this would just hog the CPU\n -- without any visible effect\n\n -- At this point, control is relinquished to the GLUT event handler.\n -- Control is returned as events occur, via the callback functions.\n mainLoop\n\n--------------------------------------------------------------------------------\n-- One time setup, including creating menus, creating a light, setting the\n-- shading mode and clear color, and loading textures.\n--------------------------------------------------------------------------------\ninitialize :: IO ()\ninitialize = do\n -- set up the only meny\n attachMenu RightButton (Menu [MenuEntry \"Exit\" (exitWith ExitSuccess)])\n\n depthFunc $= Just Less\n\n\n--------------------------------------------------------------------------------\n-- Handle mouse and keyboard events. For this simple demo, just exit on a\n-- left click or when q is pressed.\n--------------------------------------------------------------------------------\nkeyboardMouseHandler :: KeyboardMouseCallback\n--keyboardMouseHandler (MouseButton LeftButton)_ _ _ = exitWith ExitSuccess\nkeyboardMouseHandler (Char 'q') _ _ _ = exitWith ExitSuccess\nkeyboardMouseHandler _ _ _ _ = postRedisplay Nothing\n\n--------------------------------------------------------------------------------\n-- Reset the viewport for window changes.\n--------------------------------------------------------------------------------\nreshape :: ReshapeCallback\nreshape size@(Size width height) =\n unless (height == 0) $ do\n viewport $= (Position 0 0, size)\n matrixMode $= Projection\n loadIdentity\n perspective 90 (fromIntegral width / fromIntegral height) 1 100\n\n matrixMode $= Modelview 0\n\n--------------------------------------------------------------------------------\n-- Clear and redraw the scene.\n--------------------------------------------------------------------------------\ndisplay :: DisplayCallback\ndisplay = do\n -- set up the camera\n loadIdentity\n lookAt (Vertex3 0 1 6) (Vertex3 0 0 0) (Vector3 0 1 0)\n\n -- clear the screen\n clear [ ColorBuffer, DepthBuffer ]\n\n -- resolve overloading, not needed in \"real\" programs\n let color3f = color :: Color3 GLfloat -> IO ()\n vertex3f = vertex :: Vertex3 GLfloat -> IO ()\n\n -- draw a triangle\n renderPrimitive Triangles $ do\n color3f $ Color3 ( 1 ) ( 0 ) ( 0 )\n vertex3f $ Vertex3 ( 2 ) ( 2.5) ( -1 )\n\n color3f $ Color3 ( 0 ) ( 1 ) ( 0 )\n vertex3f $ Vertex3 ( -3.5) ( -2.5) ( -1 )\n\n color3f $ Color3 ( 0 ) ( 0 ) ( 1 )\n vertex3f $ Vertex3 ( 2 ) ( -4 ) ( 0 )\n\n color3f $ Color3 ( 0 ) ( 1 ) ( 1 )\n vertex3f $ Vertex3 ( 2 ) ( 2.5) ( 1 )\n\n color3f $ Color3 ( 1 ) ( 0 ) ( 1 )\n vertex3f $ Vertex3 ( -3.5) ( -2.5) ( 1 )\n\n color3f $ Color3 ( 1 ) ( 1 ) ( 2 )\n vertex3f $ Vertex3 ( 2 ) ( -4 ) ( 0 )\n\n -- draw a polygon\n renderPrimitive Polygon $ do\n color3f (Color3 1 1 1)\n vertex3f (Vertex3 (-1) 2 0)\n color3f (Color3 1 1 0)\n vertex3f (Vertex3 (-3) (-0.5) 0)\n color3f (Color3 0 1 1)\n vertex3f (Vertex3 (-1.5) (-3) 0)\n color3f (Color3 0 0 0)\n vertex3f (Vertex3 1 (-2) 0)\n color3f (Color3 1 0 1)\n vertex3f (Vertex3 1 1 0)\n\n -- draw everything and swap the display buffer\n swapBuffers"}}} 2020-01-23 01:13:14.219022 [ThreadId 9] - ****** reactor: got message number:0 2020-01-23 01:13:14.219022 [ThreadId 9] - ****** reactor: processing Initialized Notification 2020-01-23 01:13:14.219022 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.219022 [ThreadId 9] - ****** reactor: got message number:1 2020-01-23 01:13:14.219022 [ThreadId 9] - reactor:didChangeConfiguration notification:NotificationMessage {_jsonrpc = "2.0", _method = WorkspaceDidChangeConfiguration, _params = DidChangeConfigurationParams {_settings = Object (fromList [("languageServerHaskell",Object (fromList [("useCustomHieWrapper",Bool False),("useCustomHieWrapperPath",String ""),("logFile",String ""),("hlintOn",Bool True),("formatOnImportOn",Bool True),("noLspParam",Bool False),("hieExecutablePath",String ""),("enableHIE",Bool True),("liquidOn",Bool False),("showTypeForSelection",Object (fromList [("onHover",Bool True),("command",Object (fromList [("location",String "dropdown")]))])),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "brittany"),("trace",Object (fromList [("server",String "verbose")]))]))])}} 2020-01-23 01:13:14.2200159 [ThreadId 9] - reactor:didChangeConfiguration diagsOn:True 2020-01-23 01:13:14.2200159 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.2200159 [ThreadId 9] - ****** reactor: got message number:2 2020-01-23 01:13:14.2200159 [ThreadId 9] - ****** reactor: processing NotDidOpenTextDocument 2020-01-23 01:13:14.2200159 [ThreadId 9] - requestDiagnostics: no diagFunc for:DiagnosticOnOpen 2020-01-23 01:13:14.2200159 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.2200159 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"type":4,"message":"Using hie version: Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5"},"method":"window/logMessage"} Using hie version: Version 1.0.0.0, Git revision b7ce8b8f2fc4a071db2119516aa1dcffc577dca0 (dirty) (3541 commits) x86_64 ghc-8.6.5 2020-01-23 01:13:14.2310177 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"}}} 2020-01-23 01:13:14.2310177 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":2,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":111,"character":28},"end":{"line":111,"character":28}},"context":{"diagnostics":[]}}} 2020-01-23 01:13:14.2310177 [ThreadId 9] - ****** reactor: got message number:3 2020-01-23 01:13:14.2310177 [ThreadId 9] - reactor:got Document symbol request:RequestMessage {_jsonrpc = "2.0", _id = IdInt 1, _method = TextDocumentDocumentSymbol, _params = DocumentSymbolParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _workDoneToken = Nothing}} 2020-01-23 01:13:14.2320202 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.2320202 [ThreadId 9] - ****** reactor: got message number:4 2020-01-23 01:13:14.2320202 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 2, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 111, _character = 28}, _end = Position {_line = 111, _character = 28}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-23 01:13:14.2330206 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:14.3290158 [ThreadId 8] - GHC Output: "Just "C:\\Tools\\HaskellPlatform\\8.6.5\\lib"" 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: got request 3 with id: IdInt 1 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3300193 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: got request 4 with id: IdInt 2 2020-01-23 01:13:14.3310157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:14.3310157 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":2} 2020-01-23 01:13:14.3370198 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:14.3370198 [ThreadId 14] - ghcDispatcher:got request 0 with id: Nothing 2020-01-23 01:13:14.3380188 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:14.3380188 [ThreadId 14] - ghcDispatcher:got request 2 with id: Nothing 2020-01-23 01:13:14.3380188 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-23 01:13:14.3390885 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 01:13:14.3410521 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" Using hoogle db at: C:\Users\nikita\AppData\Roaming\hoogle\default-haskell-5.0.17.hoo 2020-01-23 01:13:14.3410521 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"type":4,"message":"Using hoogle db at: C:\\Users\\nikita\\AppData\\Roaming\\hoogle\\default-haskell-5.0.17.hoo"},"method":"window/logMessage"} 2020-01-23 01:13:14.3430341 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:14.3430341 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:14.3440283 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":0},"method":"window/workDoneProgress/create","id":0} 2020-01-23 01:13:14.3440283 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":0},"method":"$/progress"} 2020-01-23 01:13:14.347033 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":0,"result":null} 2020-01-23 01:13:14.347033 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":null}" 2020-01-23 01:13:14.3540809 [ThreadId 9] - ****** reactor: got message number:5 2020-01-23 01:13:14.3540809 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 0, _result = Just Null, _error = Nothing} 2020-01-23 01:13:14.3540809 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:15.4094999 [ThreadId 22] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 01:13:15.4115425 [ThreadId 22] - Boids> initial-build-steps (lib + exe) 2020-01-23 01:13:15.7769865 [ThreadId 22] - Configuring GHCi with the following packages: Boids 2020-01-23 01:13:16.5973533 [ThreadId 30] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 01:13:17.2933555 [ThreadId 18] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-23 01:13:17.2933555 [ThreadId 18] - Cradle set succesfully 2020-01-23 01:13:17.294314 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":0},"method":"$/progress"} 2020-01-23 01:13:17.2953167 [ThreadId 18] - haskell-lsp:persistFileVFS: Writing virtual file: uri = NormalizedUri "file:///C:/Projects/Boids/app/Main.hs", virtual file = "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs" 2020-01-23 01:13:17.3923216 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:17.3923216 [ThreadId 14] - ghcDispatcher:got request 2 with id: Nothing 2020-01-23 01:13:17.3923216 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-23 01:13:17.3923216 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 01:13:17.3933182 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" 2020-01-23 01:13:17.3933182 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":0},"method":"$/progress"} 2020-01-23 01:13:17.3933182 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:17.4443109 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:17.6093618 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":42,"character":51},"end":{"line":42,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":53,"character":53},"end":{"line":53,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":87,"character":25},"end":{"line":87,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":87,"character":33},"end":{"line":87,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":87,"character":41},"end":{"line":87,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":90,"character":25},"end":{"line":90,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":90,"character":33},"end":{"line":90,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":90,"character":41},"end":{"line":90,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":25},"end":{"line":93,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":33},"end":{"line":93,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":41},"end":{"line":93,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":25},"end":{"line":96,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":33},"end":{"line":96,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":96,"character":41},"end":{"line":96,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":25},"end":{"line":99,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":33},"end":{"line":99,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":99,"character":41},"end":{"line":99,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":25},"end":{"line":102,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":33},"end":{"line":102,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":41},"end":{"line":102,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-23 01:13:17.6103144 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":1},"method":"window/workDoneProgress/create","id":1} 2020-01-23 01:13:17.6103144 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":1},"method":"$/progress"} 2020-01-23 01:13:17.6133137 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":1,"result":null} 2020-01-23 01:13:17.6133137 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":null}" 2020-01-23 01:13:17.6133137 [ThreadId 9] - ****** reactor: got message number:6 2020-01-23 01:13:17.6133137 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 1, _result = Just Null, _error = Nothing} 2020-01-23 01:13:17.6133137 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:17.8713536 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":3,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":111,"character":28},"end":{"line":111,"character":28}},"context":{"diagnostics":[]}}} 2020-01-23 01:13:17.8723146 [ThreadId 9] - ****** reactor: got message number:7 2020-01-23 01:13:17.8723146 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 3, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 111, _character = 28}, _end = Position {_line = 111, _character = 28}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-23 01:13:17.8723146 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8723146 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 3 2020-01-23 01:13:17.8733221 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:17.8733221 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":3} 2020-01-23 01:13:18.4129937 [ThreadId 50] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 01:13:18.4160378 [ThreadId 50] - Boids> initial-build-steps (lib + exe) 2020-01-23 01:13:18.8017873 [ThreadId 50] - Configuring GHCi with the following packages: Boids 2020-01-23 01:13:19.1170184 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":4,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":94,"character":23}}} 2020-01-23 01:13:19.1170184 [ThreadId 9] - ****** reactor: got message number:8 2020-01-23 01:13:19.1170184 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 4, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 94, _character = 23}, _workDoneToken = Nothing}} 2020-01-23 01:13:19.1170184 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:19.1170184 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:19.1170184 [ThreadId 15] - ideDispatcher: got request 8 with id: IdInt 4 2020-01-23 01:13:19.1190228 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:19.1190228 [ThreadId 4] - <--2--{"result":null,"jsonrpc":"2.0","id":4} 2020-01-23 01:13:19.5109772 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":5,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":94,"character":21}}} 2020-01-23 01:13:19.5109772 [ThreadId 9] - ****** reactor: got message number:9 2020-01-23 01:13:19.5109772 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 5, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 94, _character = 21}, _workDoneToken = Nothing}} 2020-01-23 01:13:19.5109772 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:19.5119806 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:19.5119806 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 5 2020-01-23 01:13:19.5129795 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:19.5129795 [ThreadId 4] - <--2--{"result":null,"jsonrpc":"2.0","id":5} 2020-01-23 01:13:19.6329792 [ThreadId 55] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 01:13:19.6699762 [ThreadId 44] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-23 01:13:19.6699762 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":1},"method":"$/progress"} 2020-01-23 01:13:19.6699762 [ThreadId 44] - Cradle set succesfully 2020-01-23 01:13:19.67098 [ThreadId 44] - setTypecheckedModule: before ghc-mod 2020-01-23 01:13:19.6719793 [ThreadId 44] - Loading file 2020-01-23 01:13:19.6719793 [ThreadId 44] - setTypecheckedModule: before ghc-mod 2020-01-23 01:13:19.6719793 [ThreadId 44] - Loading file 2020-01-23 01:13:19.6779759 [ThreadId 63] - setTargets: [("c:\\Projects\\Boids\\app\\Main.hs","C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs")] 2020-01-23 01:13:19.6779759 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":2},"method":"window/workDoneProgress/create","id":2} 2020-01-23 01:13:19.6789791 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":2,"result":null} 2020-01-23 01:13:19.6789791 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":null}" 2020-01-23 01:13:19.6789791 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"loading","percentage":0},"token":2},"method":"$/progress"} 2020-01-23 01:13:19.6849757 [ThreadId 63] - modGraph: [ModLocation {ml_hs_file = Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs", ml_hi_file = "C:\\Users\\nikita\\AppData\\Local\\hie-bios\\8ed636ee1f4a6490296367eef335fc800daad02b\\Main.hi", ml_obj_file = "C:\\Projects\\Boids\\.stack-work\\odir\\Main.o"}] 2020-01-23 01:13:19.6849757 [ThreadId 63] - init-plugins(loaded):0 2020-01-23 01:13:19.6849757 [ThreadId 63] - init-plugins(specified):0 2020-01-23 01:13:19.6870191 [ThreadId 9] - ****** reactor: got message number:10 2020-01-23 01:13:19.6870191 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 2, _result = Just Null, _error = Nothing} 2020-01-23 01:13:19.6870191 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:19.6879802 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Main"},"token":2},"method":"$/progress"} 2020-01-23 01:13:19.9250023 [ThreadId 63] - loaded c:\Projects\Boids\app\Main.hs - C:\Users\nikita\AppData\Local\Temp\haskell-lsp7052\Main.hs-00000--393093572.hs 2020-01-23 01:13:19.9250023 [ThreadId 63] - Typechecked modules for: Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs" 2020-01-23 01:13:19.9289773 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":2},"method":"$/progress"} 2020-01-23 01:13:19.9309769 [ThreadId 44] - File, loaded 2020-01-23 01:13:19.931979 [ThreadId 44] - setTypecheckedModule: after ghc-mod 2020-01-23 01:13:19.931979 [ThreadId 44] - Diags: fromList [] 2020-01-23 01:13:19.9330226 [ThreadId 44] - setTypecheckedModule: Did get typechecked module for: "c:\\Projects\\Boids\\app\\Main.hs" 2020-01-23 01:13:19.9559831 [ThreadId 44] - setTypecheckedModule: done 2020-01-23 01:13:19.9559831 [ThreadId 14] - Diags: [(NormalizedUri "file:///C:/Projects/Boids/app/Main.hs",[])] 2020-01-23 01:13:19.9569794 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:19.9569794 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":1},"method":"$/progress"} 2020-01-23 01:13:19.9569794 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":42,"character":51},"end":{"line":42,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":53,"character":53},"end":{"line":53,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":87,"character":25},"end":{"line":87,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":87,"character":33},"end":{"line":87,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":87,"character":41},"end":{"line":87,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":90,"character":25},"end":{"line":90,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":90,"character":33},"end":{"line":90,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":90,"character":41},"end":{"line":90,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":25},"end":{"line":93,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":33},"end":{"line":93,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":41},"end":{"line":93,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":25},"end":{"line":96,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":33},"end":{"line":96,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":96,"character":41},"end":{"line":96,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":25},"end":{"line":99,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":33},"end":{"line":99,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":99,"character":41},"end":{"line":99,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":25},"end":{"line":102,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":33},"end":{"line":102,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":41},"end":{"line":102,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-23 01:13:20.2164157 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":6,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":111,"character":28},"end":{"line":111,"character":28}},"context":{"diagnostics":[]}}} 2020-01-23 01:13:20.2164157 [ThreadId 9] - ****** reactor: got message number:11 2020-01-23 01:13:20.2164157 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 6, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 111, _character = 28}, _end = Position {_line = 111, _character = 28}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-23 01:13:20.2164157 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2164157 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2173742 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2173742 [ThreadId 15] - ideDispatcher: got request 11 with id: IdInt 6 2020-01-23 01:13:20.2173742 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:20.2173742 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":6} 2020-01-23 01:13:22.1186721 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":7,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":93,"character":22}}} 2020-01-23 01:13:22.1186721 [ThreadId 9] - ****** reactor: got message number:12 2020-01-23 01:13:22.1186721 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 7, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 93, _character = 22}, _workDoneToken = Nothing}} 2020-01-23 01:13:22.1186721 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:22.1186721 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:22.1186721 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 7 2020-01-23 01:13:22.1256729 [ThreadId 15] - newTypeCmd: (Position {_line = 93, _character = 22},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-23 01:13:22.1276772 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:22.1286728 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nColor3 :: GLfloat -> GLfloat -> GLfloat -> Color3 GLfloat\n```\n```haskell\nColor3 :: forall a. a -> a -> a -> Color3 a\n```\n\n\n\nOpenGL Graphics.Rendering.OpenGL.GL.VertexAttributes"},"range":{"start":{"line":93,"character":17},"end":{"line":93,"character":23}}},"jsonrpc":"2.0","id":7} 2020-01-23 01:13:26.6751773 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":8,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":94,"character":20}}} 2020-01-23 01:13:26.6751773 [ThreadId 9] - ****** reactor: got message number:13 2020-01-23 01:13:26.6751773 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 8, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 94, _character = 20}, _workDoneToken = Nothing}} 2020-01-23 01:13:26.6751773 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:26.6751773 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:26.6751773 [ThreadId 15] - ideDispatcher: got request 13 with id: IdInt 8 2020-01-23 01:13:26.6761724 [ThreadId 15] - newTypeCmd: (Position {_line = 94, _character = 20},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-23 01:13:26.6771768 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:26.6781817 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nVertex3 :: GLfloat -> GLfloat -> GLfloat -> Vertex3 GLfloat\n```\n```haskell\nVertex3 :: forall a. a -> a -> a -> Vertex3 a\n```\n\n\n\nOpenGL Graphics.Rendering.OpenGL.GL.Tensor"},"range":{"start":{"line":94,"character":17},"end":{"line":94,"character":24}}},"jsonrpc":"2.0","id":8} 2020-01-23 01:13:34.46783 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"textDocument/didSave","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs","version":1}}} 2020-01-23 01:13:34.46783 [ThreadId 9] - ****** reactor: got message number:14 2020-01-23 01:13:34.46783 [ThreadId 9] - ****** reactor: processing NotDidSaveTextDocument 2020-01-23 01:13:34.46783 [ThreadId 9] - requestDiagnostics: got diagFunc for:DiagnosticOnSave 2020-01-23 01:13:34.46783 [ThreadId 9] - requestDiagnostics: calling diagFunc for plugin:PluginId "liquid" 2020-01-23 01:13:34.46783 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:34.46783 [ThreadId 14] - ghcDispatcher:got request 14 with id: Nothing 2020-01-23 01:13:34.46783 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-23 01:13:34.4688301 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 01:13:34.4698307 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" 2020-01-23 01:13:34.4698307 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:34.4698307 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:34.4708294 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":3},"method":"window/workDoneProgress/create","id":3} 2020-01-23 01:13:34.4718305 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":3},"method":"$/progress"} 2020-01-23 01:13:34.4728335 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":3,"result":null} 2020-01-23 01:13:34.4728335 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":3,\"result\":null}" 2020-01-23 01:13:34.4758359 [ThreadId 9] - ****** reactor: got message number:15 2020-01-23 01:13:34.4758359 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 3, _result = Just Null, _error = Nothing} 2020-01-23 01:13:34.4768269 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:35.5245072 [ThreadId 97] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 01:13:35.5265071 [ThreadId 97] - Boids> initial-build-steps (lib + exe) 2020-01-23 01:13:35.8942193 [ThreadId 97] - Configuring GHCi with the following packages: Boids 2020-01-23 01:13:36.7471119 [ThreadId 104] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 01:13:36.7760806 [ThreadId 93] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-23 01:13:36.777081 [ThreadId 93] - Cradle set succesfully 2020-01-23 01:13:36.77908 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":3},"method":"$/progress"} 2020-01-23 01:13:36.8450816 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:36.8450816 [ThreadId 14] - ghcDispatcher:got request 14 with id: Nothing 2020-01-23 01:13:36.8450816 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-23 01:13:36.8450816 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":3},"method":"$/progress"} 2020-01-23 01:13:36.8460822 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-23 01:13:36.8580802 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" 2020-01-23 01:13:36.8580802 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:36.8590847 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-23 01:13:36.9480794 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":42,"character":51},"end":{"line":42,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":53,"character":53},"end":{"line":53,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":87,"character":25},"end":{"line":87,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":87,"character":33},"end":{"line":87,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":87,"character":41},"end":{"line":87,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":90,"character":25},"end":{"line":90,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":90,"character":33},"end":{"line":90,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":90,"character":41},"end":{"line":90,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":25},"end":{"line":93,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":33},"end":{"line":93,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":41},"end":{"line":93,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":25},"end":{"line":96,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":33},"end":{"line":96,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":96,"character":41},"end":{"line":96,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":25},"end":{"line":99,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":33},"end":{"line":99,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":99,"character":41},"end":{"line":99,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":25},"end":{"line":102,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":33},"end":{"line":102,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":41},"end":{"line":102,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-23 01:13:36.9490844 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":4},"method":"window/workDoneProgress/create","id":4} 2020-01-23 01:13:36.9490844 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":4},"method":"$/progress"} 2020-01-23 01:13:36.9510822 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":4,"result":null} 2020-01-23 01:13:36.9510822 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":4,\"result\":null}" 2020-01-23 01:13:36.9510822 [ThreadId 9] - ****** reactor: got message number:16 2020-01-23 01:13:36.9510822 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 4, _result = Just Null, _error = Nothing} 2020-01-23 01:13:36.9510822 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:37.1160825 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":9,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":94,"character":20}}} 2020-01-23 01:13:37.1160825 [ThreadId 9] - ****** reactor: got message number:17 2020-01-23 01:13:37.1160825 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 9, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 94, _character = 20}, _workDoneToken = Nothing}} 2020-01-23 01:13:37.1160825 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:37.1160825 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:37.1170763 [ThreadId 15] - ideDispatcher: got request 17 with id: IdInt 9 2020-01-23 01:13:37.1170763 [ThreadId 15] - newTypeCmd: (Position {_line = 94, _character = 20},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-23 01:13:37.126102 [ThreadId 15] - hoogle query: Vertex3 package:OpenGL module:Graphics.Rendering.OpenGL.GL.Tensor is:exact 2020-01-23 01:13:37.1811174 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.1820836 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nVertex3 :: GLfloat -> GLfloat -> GLfloat -> Vertex3 GLfloat\n```\n```haskell\ndata Vertex3 a```\n[OpenGL](https://hackage.haskell.org/package/OpenGL) [Graphics.Rendering.OpenGL.GL.Tensor](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-Tensor.html)\nA vertex with *w*=1.\n\n[More info](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-Tensor.html#t:Vertex3)\n\nOpenGL Graphics.Rendering.OpenGL.GL.Tensor"},"range":{"start":{"line":94,"character":17},"end":{"line":94,"character":24}}},"jsonrpc":"2.0","id":9} 2020-01-23 01:13:37.207084 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":10,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":111,"character":28},"end":{"line":111,"character":28}},"context":{"diagnostics":[]}}} 2020-01-23 01:13:37.2080778 [ThreadId 9] - ****** reactor: got message number:18 2020-01-23 01:13:37.2080778 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 10, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 111, _character = 28}, _end = Position {_line = 111, _character = 28}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-23 01:13:37.2080778 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2080778 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2090832 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2090832 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2090832 [ThreadId 15] - ideDispatcher: got request 18 with id: IdInt 10 2020-01-23 01:13:37.2090832 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:37.2090832 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":10} 2020-01-23 01:13:37.8432804 [ThreadId 116] - Building all executables for `Boids' once. After a successful build of all of them, only specified executables will be rebuilt. 2020-01-23 01:13:37.8452807 [ThreadId 116] - Boids> initial-build-steps (lib + exe) 2020-01-23 01:13:38.2153862 [ThreadId 116] - Configuring GHCi with the following packages: Boids 2020-01-23 01:13:39.0598755 [ThreadId 125] - C:\Projects\Boids\.stack-work\install\b6d93af8\pkgdb;C:\sr\snapshots\47eed6bc\pkgdb;C:\Tools\HaskellPlatform\8.6.5\lib\package.conf.d 2020-01-23 01:13:39.0858354 [ThreadId 112] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-23 01:13:39.0858354 [ThreadId 112] - Cradle set succesfully 2020-01-23 01:13:39.0858354 [ThreadId 112] - setTypecheckedModule: before ghc-mod 2020-01-23 01:13:39.0868398 [ThreadId 112] - Loading file 2020-01-23 01:13:39.0868398 [ThreadId 112] - setTypecheckedModule: before ghc-mod 2020-01-23 01:13:39.0868398 [ThreadId 112] - Loading file 2020-01-23 01:13:39.0908344 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":4},"method":"$/progress"} 2020-01-23 01:13:39.0938346 [ThreadId 132] - setTargets: [("c:\\Projects\\Boids\\app\\Main.hs","C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs")] 2020-01-23 01:13:39.0948348 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":5},"method":"window/workDoneProgress/create","id":5} 2020-01-23 01:13:39.0948348 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"loading","percentage":0},"token":5},"method":"$/progress"} 2020-01-23 01:13:39.0958367 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":5,"result":null} 2020-01-23 01:13:39.0958367 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":5,\"result\":null}" 2020-01-23 01:13:39.1008361 [ThreadId 132] - modGraph: [ModLocation {ml_hs_file = Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs", ml_hi_file = "C:\\Users\\nikita\\AppData\\Local\\hie-bios\\8ed636ee1f4a6490296367eef335fc800daad02b\\Main.hi", ml_obj_file = "C:\\Projects\\Boids\\.stack-work\\odir\\Main.o"}] 2020-01-23 01:13:39.1008361 [ThreadId 132] - init-plugins(loaded):0 2020-01-23 01:13:39.1008361 [ThreadId 132] - init-plugins(specified):0 2020-01-23 01:13:39.103836 [ThreadId 9] - ****** reactor: got message number:19 2020-01-23 01:13:39.103836 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 5, _result = Just Null, _error = Nothing} 2020-01-23 01:13:39.103836 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:39.1048383 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Main"},"token":5},"method":"$/progress"} 2020-01-23 01:13:39.2418493 [ThreadId 132] - loaded c:\Projects\Boids\app\Main.hs - C:\Users\nikita\AppData\Local\Temp\haskell-lsp7052\Main.hs-00000--393093572.hs 2020-01-23 01:13:39.2418493 [ThreadId 132] - Typechecked modules for: Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp7052\\Main.hs-00000--393093572.hs" 2020-01-23 01:13:39.248836 [ThreadId 112] - File, loaded 2020-01-23 01:13:39.2498364 [ThreadId 112] - setTypecheckedModule: after ghc-mod 2020-01-23 01:13:39.2498364 [ThreadId 112] - Diags: fromList [] 2020-01-23 01:13:39.2498364 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":5},"method":"$/progress"} 2020-01-23 01:13:39.2498364 [ThreadId 112] - setTypecheckedModule: Did get typechecked module for: "c:\\Projects\\Boids\\app\\Main.hs" 2020-01-23 01:13:39.2778413 [ThreadId 112] - setTypecheckedModule: done 2020-01-23 01:13:39.2778413 [ThreadId 14] - Diags: [(NormalizedUri "file:///C:/Projects/Boids/app/Main.hs",[])] 2020-01-23 01:13:39.2778413 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":4},"method":"$/progress"} 2020-01-23 01:13:39.2788348 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-23 01:13:39.2788348 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":42,"character":51},"end":{"line":42,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":53,"character":53},"end":{"line":53,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":87,"character":25},"end":{"line":87,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":87,"character":33},"end":{"line":87,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":87,"character":41},"end":{"line":87,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":90,"character":25},"end":{"line":90,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":90,"character":33},"end":{"line":90,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":90,"character":41},"end":{"line":90,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":25},"end":{"line":93,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":33},"end":{"line":93,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":93,"character":41},"end":{"line":93,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":25},"end":{"line":96,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":96,"character":33},"end":{"line":96,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":96,"character":41},"end":{"line":96,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":25},"end":{"line":99,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":99,"character":33},"end":{"line":99,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":99,"character":41},"end":{"line":99,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":25},"end":{"line":102,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":33},"end":{"line":102,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":102,"character":41},"end":{"line":102,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-23 01:13:39.4353203 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":11,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":94,"character":20}}} 2020-01-23 01:13:39.4353203 [ThreadId 9] - ****** reactor: got message number:20 2020-01-23 01:13:39.4353203 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 11, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 94, _character = 20}, _workDoneToken = Nothing}} 2020-01-23 01:13:39.4353203 [ThreadId 9] - reactor:HoverRequest done 2020-01-23 01:13:39.4353203 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:39.4363191 [ThreadId 15] - ideDispatcher: got request 20 with id: IdInt 11 2020-01-23 01:13:39.4453162 [ThreadId 15] - newTypeCmd: (Position {_line = 94, _character = 20},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-23 01:13:39.4473179 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.4473179 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nVertex3 :: GLfloat -> GLfloat -> GLfloat -> Vertex3 GLfloat\n```\n```haskell\nVertex3 :: forall a. a -> a -> a -> Vertex3 a\n```\n\n\n\nOpenGL Graphics.Rendering.OpenGL.GL.Tensor"},"range":{"start":{"line":94,"character":17},"end":{"line":94,"character":24}}},"jsonrpc":"2.0","id":11} 2020-01-23 01:13:39.5374547 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":12,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":111,"character":28},"end":{"line":111,"character":28}},"context":{"diagnostics":[]}}} 2020-01-23 01:13:39.5374547 [ThreadId 9] - ****** reactor: got message number:21 2020-01-23 01:13:39.5374547 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 12, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 111, _character = 28}, _end = Position {_line = 111, _character = 28}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-23 01:13:39.5374547 [ThreadId 9] - ****** reactor: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: got request 21 with id: IdInt 12 2020-01-23 01:13:39.5374547 [ThreadId 15] - ideDispatcher: top of loop 2020-01-23 01:13:39.5384752 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":12} ```
kanashimia commented 4 years ago

It's normal just as you save, by the time all that logging is finished it's all wrong again.

kanashimia commented 4 years ago

Also, info still shows sometimes, even after doubling.

HMM

fendor commented 4 years ago

The doubling itself is as far as I know alright. It shows you the declared type and the actual type, which in this case is very useful, at least in my opinion. Missing documentation is a bug.

kanashimia commented 4 years ago

After doing fresh install - same stuff. (deleting everything that i can and just installing stack; i've even tried to do it with or without haskell platform)

Even on the older version of hie, which is very strange because it didnt happen to me before ;$

kanashimia commented 4 years ago

So i found a way of "fixing" this - it fixes itself when you switch to another haskell file and go back.

--This is bad result:
2020-01-26 10:41:03.7680314 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":10,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":63,"character":6}}}
2020-01-26 10:41:03.7680314 [ThreadId 9] - ****** reactor: got message number:15
2020-01-26 10:41:03.7690303 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 10, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 63, _character = 6}, _workDoneToken = Nothing}}
2020-01-26 10:41:03.7690303 [ThreadId 9] - reactor:HoverRequest done
2020-01-26 10:41:03.7690303 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 10
2020-01-26 10:41:03.7690303 [ThreadId 9] - ****** reactor: top of loop
2020-01-26 10:41:03.7690303 [ThreadId 15] - newTypeCmd: (Position {_line = 63, _character = 6},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"})
2020-01-26 10:41:03.7710321 [ThreadId 15] - ideDispatcher: top of loop
2020-01-26 10:41:03.7720312 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nviewport :: StateVar (Position, Size)\n```\n```haskell\nviewport :: StateVar (Position, Size)\n```\n\n\n\nOpenGL Graphics.Rendering.OpenGL.GL.CoordTrans"},"range":{"start":{"line":63,"character":6},"end":{"line":63,"character":14}}},"jsonrpc":"2.0","id":10}

--This is good one:
2020-01-26 10:47:03.0243117 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":10,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":63,"character":8}}}
2020-01-26 10:47:03.0253307 [ThreadId 9] - ****** reactor: got message number:19
2020-01-26 10:47:03.0253307 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 10, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 63, _character = 8}, _workDoneToken = Nothing}}
2020-01-26 10:47:03.0253307 [ThreadId 9] - reactor:HoverRequest done
2020-01-26 10:47:03.0253307 [ThreadId 9] - ****** reactor: top of loop
2020-01-26 10:47:03.0253307 [ThreadId 15] - ideDispatcher: got request 19 with id: IdInt 10
2020-01-26 10:47:03.0253307 [ThreadId 15] - newTypeCmd: (Position {_line = 63, _character = 8},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"})
2020-01-26 10:47:03.0263779 [ThreadId 15] - hoogle query: viewport package:OpenGL module:Graphics.Rendering.OpenGL.GL.CoordTrans is:exact
2020-01-26 10:47:03.0773812 [ThreadId 15] - ideDispatcher: top of loop
2020-01-26 10:47:03.0773812 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nviewport :: StateVar (Position, Size)\n```\n```haskell\nviewport :: StateVar (Position, Size)```\n[OpenGL](https://hackage.haskell.org/package/OpenGL) [Graphics.Rendering.OpenGL.GL.CoordTrans](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-CoordTrans.html)\nControls the affine transformation from normalized device coordinates\nto window coordinates. The viewport state variable consists of the\ncoordinates (*x*, *y*) of the lower left corner of the\nviewport rectangle, (in pixels, initial value (0,0)), and the size\n(*width*, *height*) of the viewport. When a GL context is\nfirst attached to a window, *width* and *height* are set to\nthe dimensions of that window.\n\nLet (*xnd*, *ynd*) be normalized device coordinates. Then\nthe window coordinates (*xw*, *yw*) are computed as follows:\n\n*xw* = (*xnd* + 1) (*width* / 2) + *x*\n\n*yw* = (*ynd* + 1) (*heigth* / 2) + *y*\n\nViewport width and height are silently clamped to a range that depends\non the implementation, see `maxViewportDims`.\n\n[More info](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:viewport)\n\nOpenGL Graphics.Rendering.OpenGL.GL.CoordTrans"},"range":{"start":{"line":63,"character":6},"end":{"line":63,"character":14}}},"jsonrpc":"2.0","id":10}

As you see the only real difference is the result line and this line: hoogle query: viewport package:OpenGL module:Graphics.Rendering.OpenGL.GL.CoordTrans is:exact

kanashimia commented 4 years ago

This is log of me:

  1. opening vs code
  2. hovering over "viewport" function (its bad at this step)
  3. switching to another file
  4. switching to initial file
  5. hovering over "viewport" function again (its good at this step)
LOG ``` 2020-01-26 10:55:04.3193196 [ThreadId 3] - run entered for hie-wrapper(hie-wrapper) Version 1.0.0.0, Git revision 0fd7e3f7bed42173c671f53b93095c731d16ffbb (3704 commits) x86_64 ghc-8.6.5 2020-01-26 10:55:04.3203191 [ThreadId 3] - Current directory:c:\Projects 2020-01-26 10:55:04.3203191 [ThreadId 3] - Operating system:mingw32 2020-01-26 10:55:04.3203191 [ThreadId 3] - args:["--lsp","-d","--vomit","-l","C:\\log.txt"] 2020-01-26 10:55:04.322317 [ThreadId 3] - Cabal-Helper found these projects: [] 2020-01-26 10:55:04.322317 [ThreadId 3] - These projects have the build tools installed: [] 2020-01-26 10:55:04.322317 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-26 10:55:04.322317 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-26 10:55:04.3233156 [ThreadId 3] - Cradle directory:c:\Projects 2020-01-26 10:55:04.3233156 [ThreadId 3] - Executing GHC on path with args: --numeric-version 2020-01-26 10:55:04.4003105 [ThreadId 3] - GHC Output: "Just "8.6.5"" 2020-01-26 10:55:04.4003105 [ThreadId 3] - Project GHC version:8.6.5 2020-01-26 10:55:04.4003105 [ThreadId 3] - hie exe candidates :["hie-8.6.5.exe","hie-8.6.exe","hie.exe"] 2020-01-26 10:55:04.4003105 [ThreadId 3] - found hie exe at:C:\Users\nikita\AppData\Roaming\local\bin\hie-8.6.5.exe 2020-01-26 10:55:04.4003105 [ThreadId 3] - args:["--lsp","-d","--vomit","-l","C:\\log.txt"] 2020-01-26 10:55:04.4003105 [ThreadId 3] - launching .... 2020-01-26 10:55:04.4213512 [ThreadId 3] - Run entered for HIE(hie-8.6.5.exe) Version 1.0.0.0, Git revision 0fd7e3f7bed42173c671f53b93095c731d16ffbb (3704 commits) x86_64 ghc-8.6.5 2020-01-26 10:55:04.4213512 [ThreadId 3] - Operating as a LSP server on stdio 2020-01-26 10:55:04.4213512 [ThreadId 3] - Current directory:c:\Projects 2020-01-26 10:55:04.4213512 [ThreadId 3] - Operating system:mingw32 2020-01-26 10:55:04.4223513 [ThreadId 3] - args:["--lsp","-d","--vomit","-l","C:\\log.txt"] 2020-01-26 10:55:04.4223513 [ThreadId 3] - Enabling verbose mode for hie-bios. This option currently doesn't do anything. 2020-01-26 10:55:04.4223513 [ThreadId 3] - haskell-lsp:Starting up server ... 2020-01-26 10:55:04.4233511 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":0,"method":"initialize","params":{"processId":9316,"clientInfo":{"name":"vscode","version":"1.41.1"},"rootPath":"c:\\Projects","rootUri":"file:///c%3A/Projects","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]}},"executeCommand":{"dynamicRegistration":true},"configuration":true,"workspaceFolders":true},"textDocument":{"publishDiagnostics":{"relatedInformation":true,"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,"tagSupport":{"valueSet":[1]}},"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}},"contextSupport":true},"definition":{"dynamicRegistration":true,"linkSupport":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},"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,"linkSupport":true},"implementation":{"dynamicRegistration":true,"linkSupport":true},"colorProvider":{"dynamicRegistration":true},"foldingRange":{"dynamicRegistration":true,"rangeLimit":5000,"lineFoldingOnly":true},"declaration":{"dynamicRegistration":true,"linkSupport":true},"selectionRange":{"dynamicRegistration":true},"callHierarchy":{"dynamicRegistration":true}},"window":{"workDoneProgress":true}},"trace":"off","workspaceFolders":[{"uri":"file:///c%3A/Projects","name":"Projects"},{"uri":"file:///c%3A/Program%20Files%20%28x86%29/Adobe/qwqwq","name":"qwqwq"}]}} 2020-01-26 10:55:04.4913174 [ThreadId 3] - haskell-lsp:initializeRequestHandler: setting current dir to project root:c:\Projects 2020-01-26 10:55:04.4913174 [ThreadId 3] - Dummy Cradle file result: c:\Projects\File.hs 2020-01-26 10:55:04.4923512 [ThreadId 3] - Cabal-Helper found these projects: [] 2020-01-26 10:55:04.4923512 [ThreadId 3] - These projects have the build tools installed: [] 2020-01-26 10:55:04.4933118 [ThreadId 3] - Could not find a Project for file: c:\Projects\File.hs 2020-01-26 10:55:04.4933118 [ThreadId 3] - Module "c:\Projects\File.hs" is loaded by Cradle: Cradle {cradleRootDir = "c:\\Projects", cradleOptsProg = CradleAction: Direct} 2020-01-26 10:55:04.4933118 [ThreadId 3] - Executing GHC on path with args: --numeric-version 2020-01-26 10:55:04.5643114 [ThreadId 3] - GHC Output: "Just "8.6.5"" 2020-01-26 10:55:04.5643114 [ThreadId 8] - Executing GHC on path with args: --print-libdir 2020-01-26 10:55:04.5643114 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.5713491 [ThreadId 4] - <--2--{"result":{"capabilities":{"typeDefinitionProvider":true,"foldingRangeProvider":false,"textDocumentSync":{"openClose":true,"change":2,"willSave":false,"willSaveWaitUntil":false,"save":{"includeText":false}},"workspace":{},"implementationProvider":true,"documentRangeFormattingProvider":true,"documentHighlightProvider":true,"executeCommandProvider":{"commands":["8216:applyrefact:applyOne","8216:applyrefact:applyAll","8216:generic:type","8216:ghcmod:check","8216:ghcmod:type","8216:ghcmod:casesplit","8216:hsimport:import","8216:package:add","8216:pragmas:addPragma"]},"renameProvider":false,"colorProvider":false,"definitionProvider":true,"hoverProvider":true,"codeActionProvider":true,"completionProvider":{"triggerCharacters":["."],"resolveProvider":true},"documentSymbolProvider":true,"documentFormattingProvider":true,"referencesProvider":true}},"jsonrpc":"2.0","id":0} 2020-01-26 10:55:04.583325 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"initialized","params":{}} 2020-01-26 10:55:04.583325 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"workspace/didChangeConfiguration","params":{"settings":{"languageServerHaskell":{"hlintOn":true,"maxNumberOfProblems":100,"diagnosticsOnChange":true,"liquidOn":false,"completionSnippetsOn":true,"formatOnImportOn":true,"formattingProvider":"brittany","hieExecutablePath":"","useCustomHieWrapper":false,"useCustomHieWrapperPath":"","noLspParam":false,"showTypeForSelection":{"onHover":true,"command":{"location":"dropdown"}},"trace":{"server":"verbose"},"logFile":"C:\\log.txt","enableHIE":true}}}} 2020-01-26 10:55:04.583325 [ThreadId 9] - ****** reactor: got message number:0 2020-01-26 10:55:04.583325 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs","languageId":"haskell","version":1,"text":"import Control.Monad ( unless )\nimport System.Exit ( exitWith, ExitCode(ExitSuccess) )\nimport Graphics.UI.GLUT hiding ( initialize )\n\n--------------------------------------------------------------------------------\n-- Setup GLUT and OpenGL, drop into the event loop.\n--------------------------------------------------------------------------------\nmain :: IO ()\nmain = do\n -- Setup the basic GLUT stuff\n _ <- getArgsAndInitialize\n initialDisplayMode $=\n [ DoubleBuffered\n , WithDepthBuffer\n , WithSamplesPerPixel 4\n ]\n\n\n -- Create the window\n initialWindowSize $= Size 1024 768\n initialWindowPosition $= Position 100 150\n _ <- createWindow \"BOGLGP - Chapter 1 - Simple\"\n\n initialize\n\n -- Register the event callback functions\n displayCallback $= display\n reshapeCallback $= Just reshape\n keyboardMouseCallback $= Just keyboardMouseHandler\n -- No need for an idle callback here, this would just hog the CPU\n -- without any visible effect\n\n -- At this point, control is relinquished to the GLUT event handler.\n -- Control is returned as events occur, via the callback functions.\n mainLoop\n\n--------------------------------------------------------------------------------\n-- One time setup, including creating menus, creating a light, setting the\n-- shading mode and clear color, and loading textures.\n--------------------------------------------------------------------------------\ninitialize :: IO ()\ninitialize = do\n -- set up the only meny\n attachMenu RightButton (Menu [MenuEntry \"Exit\" (exitWith ExitSuccess)])\n\n depthFunc $= Just Less\n\n\n--------------------------------------------------------------------------------\n-- Handle mouse and keyboard events. For this simple demo, just exit on a\n-- left click or when q is pressed.\n--------------------------------------------------------------------------------\nkeyboardMouseHandler :: KeyboardMouseCallback\n--keyboardMouseHandler (MouseButton LeftButton)_ _ _ = exitWith ExitSuccess\nkeyboardMouseHandler (Char 'q') _ _ _ = exitWith ExitSuccess\nkeyboardMouseHandler _ _ _ _ = postRedisplay Nothing\n\n--------------------------------------------------------------------------------\n-- Reset the viewport for window changes.\n--------------------------------------------------------------------------------\nreshape :: ReshapeCallback\nreshape size@(Size width height) =\n unless (height == 0) $ do\n viewport $= (Position 0 0, size)\n matrixMode $= Projection\n loadIdentity\n perspective 90 (fromIntegral width / fromIntegral height) 1 100\n\n matrixMode $= Modelview 0\n\n--------------------------------------------------------------------------------\n-- Clear and redraw the scene.\n--------------------------------------------------------------------------------\ndisplay :: DisplayCallback\ndisplay = do\n -- set up the camera\n loadIdentity\n lookAt (Vertex3 0 1 6) (Vertex3 0 0 0) (Vector3 0 1 0)\n\n -- clear the screen\n clear [ ColorBuffer, DepthBuffer ]\n\n -- resolve overloading, not needed in \"real\" programs\n let color3f = color :: Color3 GLfloat -> IO ()\n vertex3f = vertex :: Vertex3 GLfloat -> IO ()\n\n -- draw a triangle\n renderPrimitive Triangles $ do\n color3f $ Color3 ( 1 ) ( 0 ) ( 0 )\n vertex3f $ Vertex3 ( 2 ) ( 2.5) ( -1 )\n\n color3f $ Color3 ( 0 ) ( 1 ) ( 0 )\n vertex3f $ Vertex3 ( -3.5) ( -2.5) ( -1 )\n\n color3f $ Color3 ( 0 ) ( 0 ) ( 1 )\n vertex3f $ Vertex3 ( 2 ) ( -4 ) ( 0 )\n\n color3f $ Color3 ( 0 ) ( 1 ) ( 1 )\n vertex3f $ Vertex3 ( 2 ) ( 2.5) ( 1 )\n\n color3f $ Color3 ( 1 ) ( 0 ) ( 1 )\n vertex3f $ Vertex3 ( -3.5) ( -2.5) ( 1 )\n\n color3f $ Color3 ( 1 ) ( 1 ) ( 2 )\n vertex3f $ Vertex3 ( 2 ) ( -4 ) ( 0 )\n\n -- draw a polygon\n renderPrimitive Polygon $ do\n color3f (Color3 1 1 1)\n vertex3f (Vertex3 (-1) 2 0)\n color3f (Color3 1 1 0)\n vertex3f (Vertex3 (-3) (-0.5) 0)\n color3f (Color3 0 1 1)\n vertex3f (Vertex3 (-1.5) (-3) 0)\n color3f (Color3 0 0 0)\n vertex3f (Vertex3 1 (-2) 0)\n color3f (Color3 1 0 1)\n vertex3f (Vertex3 1 1 0)\n\n -- draw everything and swap the display buffer\n swapBuffers"}}} 2020-01-26 10:55:04.584314 [ThreadId 9] - ****** reactor: processing Initialized Notification 2020-01-26 10:55:04.584314 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.5853118 [ThreadId 9] - ****** reactor: got message number:1 2020-01-26 10:55:04.5853118 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"type":4,"message":"Using hie version: Version 1.0.0.0, Git revision 0fd7e3f7bed42173c671f53b93095c731d16ffbb (3704 commits) x86_64 ghc-8.6.5"},"method":"window/logMessage"} 2020-01-26 10:55:04.5853118 [ThreadId 9] - reactor:didChangeConfiguration notification:NotificationMessage {_jsonrpc = "2.0", _method = WorkspaceDidChangeConfiguration, _params = DidChangeConfigurationParams {_settings = Object (fromList [("languageServerHaskell",Object (fromList [("useCustomHieWrapper",Bool False),("useCustomHieWrapperPath",String ""),("logFile",String "C:\\log.txt"),("hlintOn",Bool True),("formatOnImportOn",Bool True),("noLspParam",Bool False),("hieExecutablePath",String ""),("enableHIE",Bool True),("liquidOn",Bool False),("showTypeForSelection",Object (fromList [("onHover",Bool True),("command",Object (fromList [("location",String "dropdown")]))])),("diagnosticsOnChange",Bool True),("completionSnippetsOn",Bool True),("maxNumberOfProblems",Number 100.0),("formattingProvider",String "brittany"),("trace",Object (fromList [("server",String "verbose")]))]))])}} 2020-01-26 10:55:04.5853118 [ThreadId 9] - reactor:didChangeConfiguration diagsOn:True 2020-01-26 10:55:04.5853118 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.5853118 [ThreadId 9] - ****** reactor: got message number:2 2020-01-26 10:55:04.5853118 [ThreadId 9] - ****** reactor: processing NotDidOpenTextDocument 2020-01-26 10:55:04.5853118 [ThreadId 9] - requestDiagnostics: no diagFunc for:DiagnosticOnOpen 2020-01-26 10:55:04.5853118 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.5933344 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":1,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"}}} 2020-01-26 10:55:04.5943201 [ThreadId 9] - ****** reactor: got message number:3 2020-01-26 10:55:04.5943201 [ThreadId 9] - reactor:got Document symbol request:RequestMessage {_jsonrpc = "2.0", _id = IdInt 1, _method = TextDocumentDocumentSymbol, _params = DocumentSymbolParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _workDoneToken = Nothing}} 2020-01-26 10:55:04.5943201 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.6872637 [ThreadId 8] - GHC Output: "Just "C:\\Tools\\8.6.5\\HaskellPlatform\\lib"" 2020-01-26 10:55:04.6872637 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:04.6882605 [ThreadId 15] - ideDispatcher: got request 3 with id: IdInt 1 2020-01-26 10:55:04.6882605 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:04.6942649 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:04.6942649 [ThreadId 14] - ghcDispatcher:got request 0 with id: Nothing 2020-01-26 10:55:04.6952645 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:04.6952645 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"type":4,"message":"Using hoogle db at: C:\\Users\\nikita\\AppData\\Roaming\\hoogle\\default-haskell-5.0.17.hoo"},"method":"window/logMessage"} 2020-01-26 10:55:04.6952645 [ThreadId 14] - ghcDispatcher:got request 2 with id: Nothing 2020-01-26 10:55:04.6952645 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-26 10:55:04.6952645 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-26 10:55:04.6962655 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" 2020-01-26 10:55:04.6962655 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-26 10:55:04.6972647 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-26 10:55:04.6972647 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":0},"method":"window/workDoneProgress/create","id":0} 2020-01-26 10:55:04.6972647 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":0},"method":"$/progress"} 2020-01-26 10:55:04.6982659 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":0,"result":null} 2020-01-26 10:55:04.6992648 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":0,\"result\":null}" 2020-01-26 10:55:04.6992648 [ThreadId 9] - ****** reactor: got message number:4 2020-01-26 10:55:04.6992648 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 0, _result = Just Null, _error = Nothing} 2020-01-26 10:55:04.6992648 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:04.8073262 [ThreadId 22] - 'stty' is not recognized as an internal or external command, 2020-01-26 10:55:04.8073262 [ThreadId 22] - operable program or batch file. 2020-01-26 10:55:05.7723776 [ThreadId 22] - Boids> initial-build-steps (lib + exe) 2020-01-26 10:55:06.1189907 [ThreadId 22] - Configuring GHCi with the following packages: Boids 2020-01-26 10:55:06.3190469 [ThreadId 27] - 'stty' is not recognized as an internal or external command, 2020-01-26 10:55:06.3190469 [ThreadId 27] - operable program or batch file. 2020-01-26 10:55:06.9240455 [ThreadId 29] - C:\Projects\Boids\.stack-work\install\68c08424\pkgdb;C:\sr\snapshots\9447f691\pkgdb;C:\Tools\8.6.5\HaskellPlatform\lib\package.conf.d 2020-01-26 10:55:07.5990795 [ThreadId 16] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-26 10:55:07.600077 [ThreadId 16] - Cradle set succesfully 2020-01-26 10:55:07.600077 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":0},"method":"$/progress"} 2020-01-26 10:55:07.601079 [ThreadId 16] - haskell-lsp:persistFileVFS: Writing virtual file: uri = NormalizedUri "file:///C:/Projects/Boids/app/Main.hs", virtual file = "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\Main.hs-00000--393093572.hs" 2020-01-26 10:55:07.8730389 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:07.8730389 [ThreadId 14] - ghcDispatcher:got request 2 with id: Nothing 2020-01-26 10:55:07.8730389 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":0},"method":"$/progress"} 2020-01-26 10:55:07.8730389 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-26 10:55:07.8880369 [ThreadId 14] - New cradle: C:\Projects\Boids\app\Main.hs 2020-01-26 10:55:07.8890389 [ThreadId 14] - Found "C:\Projects\Boids\hie.yaml" for "C:\Projects\Boids\app\Main.hs" 2020-01-26 10:55:07.8900387 [ThreadId 14] - Module "C:\Projects\Boids\app\Main.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-26 10:55:07.8920416 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: stack} 2020-01-26 10:55:07.9870468 [ThreadId 47] - 'stty' is not recognized as an internal or external command, 2020-01-26 10:55:07.9870468 [ThreadId 47] - operable program or batch file. 2020-01-26 10:55:08.1630455 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":43,"character":51},"end":{"line":43,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":54,"character":53},"end":{"line":54,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":41},"end":{"line":88,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":89,"character":25},"end":{"line":89,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":89,"character":33},"end":{"line":89,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":91,"character":25},"end":{"line":91,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":91,"character":33},"end":{"line":91,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":91,"character":41},"end":{"line":91,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":33},"end":{"line":94,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":95,"character":25},"end":{"line":95,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":95,"character":41},"end":{"line":95,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":98,"character":25},"end":{"line":98,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":98,"character":33},"end":{"line":98,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":98,"character":41},"end":{"line":98,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":25},"end":{"line":100,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":33},"end":{"line":100,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":101,"character":41},"end":{"line":101,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":33},"end":{"line":103,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":104,"character":25},"end":{"line":104,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":104,"character":41},"end":{"line":104,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-26 10:55:08.1640412 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":1},"method":"window/workDoneProgress/create","id":1} 2020-01-26 10:55:08.1640412 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing Stack project","percentage":0},"token":1},"method":"$/progress"} 2020-01-26 10:55:08.1680401 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":1,"result":null} 2020-01-26 10:55:08.1680401 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":1,\"result\":null}" 2020-01-26 10:55:08.1680401 [ThreadId 9] - ****** reactor: got message number:5 2020-01-26 10:55:08.1680401 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 1, _result = Just Null, _error = Nothing} 2020-01-26 10:55:08.1680401 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:08.8529739 [ThreadId 47] - Boids> initial-build-steps (lib + exe) 2020-01-26 10:55:09.2061397 [ThreadId 47] - Configuring GHCi with the following packages: Boids 2020-01-26 10:55:09.3953837 [ThreadId 52] - 'stty' is not recognized as an internal or external command, 2020-01-26 10:55:09.3963817 [ThreadId 52] - operable program or batch file. 2020-01-26 10:55:10.0013789 [ThreadId 54] - C:\Projects\Boids\.stack-work\install\68c08424\pkgdb;C:\sr\snapshots\9447f691\pkgdb;C:\Tools\8.6.5\HaskellPlatform\lib\package.conf.d 2020-01-26 10:55:10.0413808 [ThreadId 43] - Modules in the cradle: ["C:\\Projects\\Boids\\src\\Lib.hs"] 2020-01-26 10:55:10.0413808 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Lib"},"token":1},"method":"$/progress"} 2020-01-26 10:55:10.0423835 [ThreadId 43] - Cradle set succesfully 2020-01-26 10:55:10.0423835 [ThreadId 43] - setTypecheckedModule: before ghc-mod 2020-01-26 10:55:10.0423835 [ThreadId 43] - Loading file 2020-01-26 10:55:10.0433813 [ThreadId 43] - setTypecheckedModule: before ghc-mod 2020-01-26 10:55:10.0433813 [ThreadId 43] - Loading file 2020-01-26 10:55:10.049381 [ThreadId 62] - setTargets: [("c:\\Projects\\Boids\\app\\Main.hs","C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\Main.hs-00000--393093572.hs")] 2020-01-26 10:55:10.049381 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":2},"method":"window/workDoneProgress/create","id":2} 2020-01-26 10:55:10.049381 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"loading","percentage":0},"token":2},"method":"$/progress"} 2020-01-26 10:55:10.0514145 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":2,"result":null} 2020-01-26 10:55:10.0533809 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":2,\"result\":null}" 2020-01-26 10:55:10.0553879 [ThreadId 9] - ****** reactor: got message number:6 2020-01-26 10:55:10.0553879 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 2, _result = Just Null, _error = Nothing} 2020-01-26 10:55:10.0553879 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:10.057396 [ThreadId 62] - modGraph: [ModLocation {ml_hs_file = Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\Main.hs-00000--393093572.hs", ml_hi_file = "C:\\Users\\nikita\\AppData\\Local\\hie-bios\\9db70a1ced0fa24443aa0b2a71e2645395b3c50c\\Main.hi", ml_obj_file = "C:\\Projects\\Boids\\.stack-work\\odir\\Main.o"}] 2020-01-26 10:55:10.057396 [ThreadId 62] - init-plugins(loaded):0 2020-01-26 10:55:10.057396 [ThreadId 62] - init-plugins(specified):0 2020-01-26 10:55:10.0593878 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Main"},"token":2},"method":"$/progress"} 2020-01-26 10:55:10.3153841 [ThreadId 62] - loaded c:\Projects\Boids\app\Main.hs - C:\Users\nikita\AppData\Local\Temp\haskell-lsp8216\Main.hs-00000--393093572.hs 2020-01-26 10:55:10.3153841 [ThreadId 62] - Typechecked modules for: Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\Main.hs-00000--393093572.hs" 2020-01-26 10:55:10.3213845 [ThreadId 43] - File, loaded 2020-01-26 10:55:10.3223874 [ThreadId 43] - setTypecheckedModule: after ghc-mod 2020-01-26 10:55:10.3223874 [ThreadId 43] - Diags: fromList [] 2020-01-26 10:55:10.3223874 [ThreadId 43] - setTypecheckedModule: Did get typechecked module for: "c:\\Projects\\Boids\\app\\Main.hs" 2020-01-26 10:55:10.337396 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":2},"method":"$/progress"} 2020-01-26 10:55:10.3463854 [ThreadId 43] - setTypecheckedModule: done 2020-01-26 10:55:10.3473867 [ThreadId 14] - Diags: [(NormalizedUri "file:///C:/Projects/Boids/app/Main.hs",[])] 2020-01-26 10:55:10.3473867 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":1},"method":"$/progress"} 2020-01-26 10:55:10.3473867 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:10.3473867 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/Boids/app/Main.hs","diagnostics":[{"severity":3,"range":{"start":{"line":43,"character":51},"end":{"line":43,"character":71}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":54,"character":53},"end":{"line":54,"character":73}},"code":"Use exitSuccess","source":"hlint","message":"Use exitSuccess\nFound:\n exitWith ExitSuccess\nWhy not:\n exitSuccess\n"},{"severity":3,"range":{"start":{"line":88,"character":25},"end":{"line":88,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":88,"character":33},"end":{"line":88,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":88,"character":41},"end":{"line":88,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":89,"character":25},"end":{"line":89,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":89,"character":33},"end":{"line":89,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":91,"character":25},"end":{"line":91,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":91,"character":33},"end":{"line":91,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":91,"character":41},"end":{"line":91,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":25},"end":{"line":94,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":33},"end":{"line":94,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":94,"character":41},"end":{"line":94,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":95,"character":25},"end":{"line":95,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":95,"character":41},"end":{"line":95,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":97,"character":25},"end":{"line":97,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":97,"character":33},"end":{"line":97,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":97,"character":41},"end":{"line":97,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":98,"character":25},"end":{"line":98,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":98,"character":33},"end":{"line":98,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2.5)\nWhy not:\n 2.5\n"},{"severity":3,"range":{"start":{"line":98,"character":41},"end":{"line":98,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":25},"end":{"line":100,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":100,"character":33},"end":{"line":100,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"},{"severity":3,"range":{"start":{"line":100,"character":41},"end":{"line":100,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":101,"character":41},"end":{"line":101,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":25},"end":{"line":103,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":33},"end":{"line":103,"character":40}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (1)\nWhy not:\n 1\n"},{"severity":3,"range":{"start":{"line":103,"character":41},"end":{"line":103,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":104,"character":25},"end":{"line":104,"character":32}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (2)\nWhy not:\n 2\n"},{"severity":3,"range":{"start":{"line":104,"character":41},"end":{"line":104,"character":48}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (0)\nWhy not:\n 0\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-26 10:55:16.6710902 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":2,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":63,"character":9}}} 2020-01-26 10:55:16.6710902 [ThreadId 9] - ****** reactor: got message number:7 2020-01-26 10:55:16.6710902 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 2, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 63, _character = 9}, _workDoneToken = Nothing}} 2020-01-26 10:55:16.6710902 [ThreadId 9] - reactor:HoverRequest done 2020-01-26 10:55:16.6710902 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:16.6710902 [ThreadId 15] - ideDispatcher: got request 7 with id: IdInt 2 2020-01-26 10:55:16.6770871 [ThreadId 15] - newTypeCmd: (Position {_line = 63, _character = 9},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-26 10:55:16.6790919 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:16.6800423 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nviewport :: StateVar (Position, Size)\n```\n```haskell\nviewport :: StateVar (Position, Size)\n```\n\n\n\nOpenGL Graphics.Rendering.OpenGL.GL.CoordTrans"},"range":{"start":{"line":63,"character":6},"end":{"line":63,"character":14}}},"jsonrpc":"2.0","id":2} 2020-01-26 10:55:19.7522553 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"textDocument/didOpen","params":{"textDocument":{"uri":"file:///c%3A/Projects/sasaa/hask.hs","languageId":"haskell","version":1,"text":"{-- {-# OPTIONS_GHC\r\n -Wall\r\n -Wincomplete-uni-patterns\r\n -Wincomplete-record-updates\r\n -Wcompat\r\n -Widentities\r\n -Wredundant-constraints\r\n -Wmissing-import-lists\r\n -Wmissing-export-lists\r\n -Wmissing-home-modules\r\n -Wpartial-fields\r\n -Wredundant-constraints\r\n -Werror\r\n -fhide-source-paths\r\n -freverse-errors #-} --}\r\n\r\nmodule Main (main) where\r\nimport Data.Maybe\r\nimport Control.Concurrent\r\nimport Control.Monad\r\nimport Data.List\r\nimport Data.Ord\r\nimport Data.Char\r\nimport qualified Data.List as DL\r\n\r\n_fac :: (Num a, Enum a) => a -> a\r\n_fac n = product [1 .. n]\r\n\r\n_exp' :: (Fractional b, Enum b) => b -> [b]\r\n_exp' x = scanl (*) 1 $ map (x /) [1 ..]\r\n\r\n_logBase10 :: (Integral a, Num b, Enum b) => a -> b\r\n_logBase10 n = fst $ until ((< 10) . snd) (\\(a,b) -> (succ a, b `div` 10)) (0, n)\r\n\r\nfizz :: Integral a => a -> Maybe String\r\nfizz n\r\n | n `mod` 3 == 0 = Just \"Fizz\"\r\n | otherwise = Nothing\r\n\r\nbuzz :: Integral a => a -> Maybe String\r\nbuzz n\r\n | n `mod` 5 == 0 = Just \"Buzz\"\r\n | otherwise = Nothing\r\n\r\nfizzBuzz :: [String]\r\nfizzBuzz = map ((fromMaybe . show) <*> (fizz <> buzz)) ([1..]::[Integer])\r\n\r\nhellW :: IO ThreadId\r\nhellW = forkIO $ putStr \"Hello world!\"\r\n\r\n\r\ndata ZPhi = ZPhi !Integer !Integer deriving (Eq)\r\ninstance Num ZPhi where (ZPhi a b) * (ZPhi c d) = ZPhi (a*c+b*d) (a*d+b*c+b*d)\r\nfib n = let ZPhi _ x = (ZPhi 0 1)^n in x\r\n\r\nfib' n = afib' !! n\r\n where afib' = 0 : 1 : zipWith (+) afib' (tail afib')\r\n\r\nfib'' n = afib'' !! n\r\n where afib'' = 0 : scanl (+) 1 afib''\r\n\r\n\r\n\r\nthread n = do\r\n done <- newEmptyMVar\r\n mapM_ (forkIO . (>> putMVar done ()) . putStr . show . fib) [1..n]\r\n replicateM_ n (takeMVar done)\r\n\r\n-- main :: IO ()\r\n-- main = do\r\n-- print $ fib 1000\r\n-- return ()\r\n\r\n\r\n--ghc 8.6.5\r\nhours = [\"one\", \"two\", \"three\", \"four\", \"five\", \"six\", \"seven\", \"eight\", \"nine\", \"ten\", \"eleven\", \"twelve\"]\r\n\r\n\r\nsplitWithStr :: Eq a => [a] -> [a] -> [[a]]\r\nsplitWithStr x y = func x y []\r\n where\r\n func x [] z = reverse $ map (reverse) z\r\n func x (y:ys) (z:zs)\r\n | take (length x) (y:ys) == x = func x (drop (length x) (y:ys)) ([]:(z:zs))\r\n | otherwise = func x ys ((y:z):zs)\r\n\r\nsolve = map getUpperWord\r\n where\r\n getUpperWord wrd = intercalate (map toUpper wrd) $ map (map (const '_')) $ splitWithStr wrd ss\r\n ss = \"twoneightwelveleveninesevensixfivefourthreeten\"\r\n\r\nmain = putStrLn $ unlines $ solve hours\r\n\r\n--twoneightwelveleveninesevensixfivefourthreeten"}}} 2020-01-26 10:55:19.753253 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":3,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/sasaa/hask.hs"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}} 2020-01-26 10:55:19.753253 [ThreadId 9] - ****** reactor: got message number:8 2020-01-26 10:55:19.753253 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":4,"method":"textDocument/documentSymbol","params":{"textDocument":{"uri":"file:///c%3A/Projects/sasaa/hask.hs"}}} 2020-01-26 10:55:19.753253 [ThreadId 9] - ****** reactor: processing NotDidOpenTextDocument 2020-01-26 10:55:19.7542584 [ThreadId 9] - requestDiagnostics: no diagFunc for:DiagnosticOnOpen 2020-01-26 10:55:19.7542584 [ThreadId 14] - ghcDispatcher:got request 8 with id: Nothing 2020-01-26 10:55:19.7542584 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:19.7542584 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-26 10:55:19.7542584 [ThreadId 9] - ****** reactor: got message number:9 2020-01-26 10:55:19.7552556 [ThreadId 14] - New cradle: C:\Projects\sasaa\hask.hs 2020-01-26 10:55:19.7552556 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 3, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/sasaa/hask.hs"}}, _range = Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 0, _character = 0}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-26 10:55:19.7582598 [ThreadId 14] - Cabal-Helper found these projects: [] 2020-01-26 10:55:19.7582598 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:19.7582598 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.7592579 [ThreadId 14] - These projects have the build tools installed: [] 2020-01-26 10:55:19.7592579 [ThreadId 9] - ****** reactor: got message number:10 2020-01-26 10:55:19.7592579 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7592579 [ThreadId 14] - Could not find a Project for file: C:\Projects\sasaa\hask.hs 2020-01-26 10:55:19.7592579 [ThreadId 9] - reactor:got Document symbol request:RequestMessage {_jsonrpc = "2.0", _id = IdInt 4, _method = TextDocumentDocumentSymbol, _params = DocumentSymbolParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/sasaa/hask.hs"}}, _workDoneToken = Nothing}} 2020-01-26 10:55:19.7592579 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.7592579 [ThreadId 14] - Module "C:\Projects\sasaa\hask.hs" is loaded by Cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: Direct} 2020-01-26 10:55:19.7602557 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:19.7602557 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7602557 [ThreadId 14] - Found cradle: Cradle {cradleRootDir = "C:\\Projects\\Boids", cradleOptsProg = CradleAction: Direct} 2020-01-26 10:55:19.7602557 [ThreadId 15] - ideDispatcher: got request 10 with id: IdInt 4 2020-01-26 10:55:19.7602557 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":3},"method":"window/workDoneProgress/create","id":3} 2020-01-26 10:55:19.7622662 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":3,"result":null} 2020-01-26 10:55:19.7632579 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7642571 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"Initializing GHC session","percentage":0},"token":3},"method":"$/progress"} 2020-01-26 10:55:19.7662561 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":3,\"result\":null}" 2020-01-26 10:55:19.7792876 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.7892582 [ThreadId 9] - ****** reactor: got message number:11 2020-01-26 10:55:19.7892582 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7942568 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 3, _result = Just Null, _error = Nothing} 2020-01-26 10:55:19.7952594 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.7952594 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:19.7962607 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7982567 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.7982567 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.7982567 [ThreadId 15] - ideDispatcher: got request 9 with id: IdInt 3 2020-01-26 10:55:19.8012565 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.8032581 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":3} 2020-01-26 10:55:19.8692572 [ThreadId 94] - Modules in the cradle: ["C:\\Projects\\sasaa\\hask.hs"] 2020-01-26 10:55:19.8692572 [ThreadId 94] - Cradle set succesfully 2020-01-26 10:55:19.8702579 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Main"},"token":3},"method":"$/progress"} 2020-01-26 10:55:19.8712595 [ThreadId 94] - haskell-lsp:persistFileVFS: Writing virtual file: uri = NormalizedUri "file:///C:/Projects/sasaa/hask.hs", virtual file = "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.hs" 2020-01-26 10:55:19.9032591 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":5,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/sasaa/hask.hs"},"range":{"start":{"line":47,"character":20},"end":{"line":47,"character":20}},"context":{"diagnostics":[]}}} 2020-01-26 10:55:19.9232634 [ThreadId 9] - ****** reactor: got message number:12 2020-01-26 10:55:19.9242636 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 5, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/sasaa/hask.hs"}}, _range = Range {_start = Position {_line = 47, _character = 20}, _end = Position {_line = 47, _character = 20}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-26 10:55:19.9262708 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:19.9422609 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9422609 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9422609 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9432968 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9442954 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9442954 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9452976 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9452976 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9462953 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9472952 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9472952 [ThreadId 15] - ideDispatcher: got request 12 with id: IdInt 5 2020-01-26 10:55:19.9482565 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:19.9632634 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":5} 2020-01-26 10:55:20.1192558 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:20.1192558 [ThreadId 14] - ghcDispatcher:got request 8 with id: Nothing 2020-01-26 10:55:20.1202617 [ThreadId 14] - ghcDispatcher:Processing request as version matches 2020-01-26 10:55:20.1202617 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":3},"method":"$/progress"} 2020-01-26 10:55:20.121261 [ThreadId 14] - Reusing cradle 2020-01-26 10:55:20.1232553 [ThreadId 14] - setTypecheckedModule: before ghc-mod 2020-01-26 10:55:20.1242596 [ThreadId 14] - Loading file 2020-01-26 10:55:20.1262577 [ThreadId 14] - setTypecheckedModule: before ghc-mod 2020-01-26 10:55:20.1272595 [ThreadId 14] - Loading file 2020-01-26 10:55:20.1342556 [ThreadId 113] - setTargets: [("c:\\Projects\\sasaa\\hask.hs","C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.hs")] 2020-01-26 10:55:20.1482924 [ThreadId 113] - modGraph: [ModLocation {ml_hs_file = Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.hs", ml_hi_file = "C:\\Users\\nikita\\AppData\\Local\\hie-bios\\722784005a943dc1e95d809be99b5092c29b04f4\\Main.hi", ml_obj_file = "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.o"}] 2020-01-26 10:55:20.1492549 [ThreadId 113] - init-plugins(loaded):0 2020-01-26 10:55:20.1512574 [ThreadId 113] - init-plugins(specified):0 2020-01-26 10:55:20.2343019 [ThreadId 113] - srcSpan2Loc: mapped file is C:\Users\nikita\AppData\Local\Temp\haskell-lsp8216\hask.hs-00000-1716459822.hs 2020-01-26 10:55:20.2352953 [ThreadId 113] - reverseMapFile: mapped file is C:\Users\nikita\AppData\Local\Temp\haskell-lsp8216\hask.hs-00000-1716459822.hs 2020-01-26 10:55:20.2352953 [ThreadId 113] - reverseMapFile: original is C:\Projects\sasaa\hask.hs 2020-01-26 10:55:20.2363017 [ThreadId 113] - reverseMapFile: Canonicalized original is C:\Projects\sasaa\hask.hs 2020-01-26 10:55:20.2372954 [ThreadId 113] - srcSpan2Loc: Original file is C:\Projects\sasaa\hask.hs 2020-01-26 10:55:20.2372954 [ThreadId 113] - Diagnostics at Location: (RealSrcSpan SrcSpanOneLine "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.hs" 53 10 18,Right (Location {_uri = Uri {getUri = "file:///C:/Projects/sasaa/hask.hs"}, _range = Range {_start = Position {_line = 52, _character = 9}, _end = Position {_line = 52, _character = 17}}})) 2020-01-26 10:55:20.2372954 [ThreadId 113] - Writing diag Diagnostic {_range = Range {_start = Position {_line = 52, _character = 9}, _end = Position {_line = 52, _character = 17}}, _severity = Just DsWarning, _code = Nothing, _source = Just "bios", _message = "* No explicit implementation for\n `+', `abs', `signum', `fromInteger', and (either `negate' or `-')\n* In the instance declaration for `Num ZPhi'", _relatedInformation = Nothing} 2020-01-26 10:55:20.2682955 [ThreadId 113] - loaded c:\Projects\sasaa\hask.hs - C:\Users\nikita\AppData\Local\Temp\haskell-lsp8216\hask.hs-00000-1716459822.hs 2020-01-26 10:55:20.2682955 [ThreadId 113] - Typechecked modules for: Just "C:\\Users\\nikita\\AppData\\Local\\Temp\\haskell-lsp8216\\hask.hs-00000-1716459822.hs" 2020-01-26 10:55:20.2852962 [ThreadId 14] - File, loaded 2020-01-26 10:55:20.2852962 [ThreadId 14] - setTypecheckedModule: after ghc-mod 2020-01-26 10:55:20.2862983 [ThreadId 14] - Diags: fromList [(NormalizedUri "file:///C:/Projects/sasaa/hask.hs",fromList [Diagnostic {_range = Range {_start = Position {_line = 52, _character = 9}, _end = Position {_line = 52, _character = 17}}, _severity = Just DsWarning, _code = Nothing, _source = Just "bios", _message = "* No explicit implementation for\n `+', `abs', `signum', `fromInteger', and (either `negate' or `-')\n* In the instance declaration for `Num ZPhi'", _relatedInformation = Nothing}])] 2020-01-26 10:55:20.2862983 [ThreadId 14] - setTypecheckedModule: Did get typechecked module for: "c:\\Projects\\sasaa\\hask.hs" 2020-01-26 10:55:20.3232676 [ThreadId 14] - setTypecheckedModule: done 2020-01-26 10:55:20.3242546 [ThreadId 14] - Diags: [(NormalizedUri "file:///C:/Projects/sasaa/hask.hs",[Diagnostic {_range = Range {_start = Position {_line = 52, _character = 9}, _end = Position {_line = 52, _character = 17}}, _severity = Just DsWarning, _code = Nothing, _source = Just "bios", _message = "* No explicit implementation for\n `+', `abs', `signum', `fromInteger', and (either `negate' or `-')\n* In the instance declaration for `Num ZPhi'", _relatedInformation = Nothing}])] 2020-01-26 10:55:20.3242546 [ThreadId 14] - ghcDispatcher: top of loop 2020-01-26 10:55:20.3292978 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/sasaa/hask.hs","diagnostics":[{"severity":4,"range":{"start":{"line":53,"character":23},"end":{"line":53,"character":35}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (ZPhi 0 1) ^ n\nWhy not:\n ZPhi 0 1 ^ n\n"},{"severity":3,"range":{"start":{"line":81,"character":36},"end":{"line":81,"character":45}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (reverse)\nWhy not:\n reverse\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-26 10:55:20.3292978 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"token":4},"method":"window/workDoneProgress/create","id":4} 2020-01-26 10:55:20.3292978 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"begin","cancellable":false,"title":"loading","percentage":0},"token":4},"method":"$/progress"} 2020-01-26 10:55:20.3292978 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"report","percentage":1,"message":"Main"},"token":4},"method":"$/progress"} 2020-01-26 10:55:20.330296 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"value":{"kind":"end"},"token":4},"method":"$/progress"} 2020-01-26 10:55:20.330296 [ThreadId 4] - <--2--{"jsonrpc":"2.0","params":{"uri":"file:///C:/Projects/sasaa/hask.hs","diagnostics":[{"severity":2,"range":{"start":{"line":52,"character":9},"end":{"line":52,"character":17}},"source":"bios","message":"* No explicit implementation for\n `+', `abs', `signum', `fromInteger', and (either `negate' or `-')\n* In the instance declaration for `Num ZPhi'"},{"severity":4,"range":{"start":{"line":53,"character":23},"end":{"line":53,"character":35}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (ZPhi 0 1) ^ n\nWhy not:\n ZPhi 0 1 ^ n\n"},{"severity":3,"range":{"start":{"line":81,"character":36},"end":{"line":81,"character":45}},"code":"Redundant bracket","source":"hlint","message":"Redundant bracket\nFound:\n (reverse)\nWhy not:\n reverse\n"}]},"method":"textDocument/publishDiagnostics"} 2020-01-26 10:55:20.331256 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":4,"result":null} 2020-01-26 10:55:20.331256 [ThreadId 3] - haskell-lsp:Got reply message:"{\"jsonrpc\":\"2.0\",\"id\":4,\"result\":null}" 2020-01-26 10:55:20.331256 [ThreadId 9] - ****** reactor: got message number:13 2020-01-26 10:55:20.331256 [ThreadId 9] - reactor:got RspFromClient:ResponseMessage {_jsonrpc = "2.0", _id = IdRspInt 4, _result = Just Null, _error = Nothing} 2020-01-26 10:55:20.331256 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:20.5877395 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":6,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/sasaa/hask.hs"},"range":{"start":{"line":47,"character":20},"end":{"line":47,"character":20}},"context":{"diagnostics":[]}}} 2020-01-26 10:55:20.5877395 [ThreadId 9] - ****** reactor: got message number:14 2020-01-26 10:55:20.5877395 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 6, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/sasaa/hask.hs"}}, _range = Range {_start = Position {_line = 47, _character = 20}, _end = Position {_line = 47, _character = 20}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-26 10:55:20.5877395 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5877395 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: got request 14 with id: IdInt 6 2020-01-26 10:55:20.5887827 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:20.5887827 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":6} 2020-01-26 10:55:24.6677055 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":7,"method":"textDocument/codeAction","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"range":{"start":{"line":0,"character":0},"end":{"line":0,"character":0}},"context":{"diagnostics":[]}}} 2020-01-26 10:55:24.668674 [ThreadId 9] - ****** reactor: got message number:15 2020-01-26 10:55:24.668674 [ThreadId 9] - reactor:got CodeActionRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 7, _method = TextDocumentCodeAction, _params = CodeActionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _range = Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 0, _character = 0}}, _context = CodeActionContext {_diagnostics = List [], only = Nothing}, _workDoneToken = Nothing}} 2020-01-26 10:55:24.668674 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: got request 15 with id: IdInt 7 2020-01-26 10:55:24.668674 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:24.668674 [ThreadId 4] - <--2--{"result":[],"jsonrpc":"2.0","id":7} 2020-01-26 10:55:27.0805817 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":8,"method":"textDocument/hover","params":{"textDocument":{"uri":"file:///c%3A/Projects/Boids/app/Main.hs"},"position":{"line":63,"character":7}}} 2020-01-26 10:55:27.0815716 [ThreadId 9] - ****** reactor: got message number:16 2020-01-26 10:55:27.0815716 [ThreadId 9] - reactor:got HoverRequest:RequestMessage {_jsonrpc = "2.0", _id = IdInt 8, _method = TextDocumentHover, _params = TextDocumentPositionParams {_textDocument = TextDocumentIdentifier {_uri = Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}}, _position = Position {_line = 63, _character = 7}, _workDoneToken = Nothing}} 2020-01-26 10:55:27.0815716 [ThreadId 9] - reactor:HoverRequest done 2020-01-26 10:55:27.0815716 [ThreadId 9] - ****** reactor: top of loop 2020-01-26 10:55:27.0815716 [ThreadId 15] - ideDispatcher: got request 16 with id: IdInt 8 2020-01-26 10:55:27.0815716 [ThreadId 15] - newTypeCmd: (Position {_line = 63, _character = 7},Uri {getUri = "file:///c%3A/Projects/Boids/app/Main.hs"}) 2020-01-26 10:55:27.0836147 [ThreadId 15] - hoogle query: viewport package:OpenGL module:Graphics.Rendering.OpenGL.GL.CoordTrans is:exact 2020-01-26 10:55:27.1336136 [ThreadId 15] - ideDispatcher: top of loop 2020-01-26 10:55:27.13462 [ThreadId 4] - <--2--{"result":{"contents":{"kind":"markdown","value":"\n```haskell\nviewport :: StateVar (Position, Size)\n```\n```haskell\nviewport :: StateVar (Position, Size)```\n[OpenGL](https://hackage.haskell.org/package/OpenGL) [Graphics.Rendering.OpenGL.GL.CoordTrans](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-CoordTrans.html)\nControls the affine transformation from normalized device coordinates\nto window coordinates. The viewport state variable consists of the\ncoordinates (*x*, *y*) of the lower left corner of the\nviewport rectangle, (in pixels, initial value (0,0)), and the size\n(*width*, *height*) of the viewport. When a GL context is\nfirst attached to a window, *width* and *height* are set to\nthe dimensions of that window.\n\nLet (*xnd*, *ynd*) be normalized device coordinates. Then\nthe window coordinates (*xw*, *yw*) are computed as follows:\n\n*xw* = (*xnd* + 1) (*width* / 2) + *x*\n\n*yw* = (*ynd* + 1) (*heigth* / 2) + *y*\n\nViewport width and height are silently clamped to a range that depends\non the implementation, see `maxViewportDims`.\n\n[More info](https://hackage.haskell.org/package/OpenGL/docs/Graphics-Rendering-OpenGL-GL-CoordTrans.html#v:viewport)\n\nOpenGL Graphics.Rendering.OpenGL.GL.CoordTrans"},"range":{"start":{"line":63,"character":6},"end":{"line":63,"character":14}}},"jsonrpc":"2.0","id":8} 2020-01-26 10:55:31.8087834 [ThreadId 3] - ---> {"jsonrpc":"2.0","id":9,"method":"shutdown","params":null} 2020-01-26 10:55:31.8087834 [ThreadId 4] - <--2--{"result":null,"jsonrpc":"2.0","id":9} 2020-01-26 10:55:31.8167818 [ThreadId 3] - ---> {"jsonrpc":"2.0","method":"exit","params":null} 2020-01-26 10:55:31.8177834 [ThreadId 3] - haskell-lsp:Got exit, exiting ```