Skip to content
New issue

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

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

Already on GitHub? Sign in to your account

codeRange: Rule Failed: GetCodeRange related to haskell-tools.nvim? #251

Closed
Per48edjes opened this issue Sep 7, 2023 · 38 comments
Closed

Comments

@Per48edjes
Copy link

Per48edjes commented Sep 7, 2023

Question

{ Sorry to be such a bother! }

Since updating to 2.x.x., I'm getting this error:

Error executing vim.schedule lua callback: UnhandledPromiseRejection with the reason:
RPC[Error] code_name = unknown, code = -32803, message = "codeRange: Rule Failed: GetCodeRange"

I'm still trying to figure out how to consistently replicate it, but for now it seems to happen whenever I'm writing out a type signature but have yet to give a value-level definition:

image

Just wondering if you think this is a haskell-tools.nvim config issue or perhaps something to do with the language server itself?

(My current config is exactly the one introduced in AstroNvim/astrocommunity#553.)

@Per48edjes Per48edjes added the question Further information is requested label Sep 7, 2023
@mrcjkb
Copy link
Owner

mrcjkb commented Sep 8, 2023

Hi. Can you reproduce this with a minimal config?
If you can't, try adding the plugins you use, until you can.

Usually, UnhandledPromiseRejection with an LSP error is caused by a plugin or an autocommand trying to use LSP capabilities without properly checking if the language server supports them, or without proper error handling.

Does the error message appear while you're in insert mode? If so, it might be a completion plugin.

for now it seems to happen whenever I'm writing out a type signature but have yet to give a value-level definition

This could be an indicator that a plugin or an autocommand is calling something like vim.lsp.buf.format (or something else) that fails if haskell-language-server can't parse the code properly.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 8, 2023

And don't worry about "being a bother" when reporting potential bugs 😄

@Per48edjes
Copy link
Author

Will give it a go with the minimal config...one additional observation in the meanwhile is this is triggered when I escape out of insert mode (back to normal mode) if ill-formed Haskell is introduced while in insert mode.

FWIW, this behavior doesn't seem to occur when I'm developing in other languages (tested with C and Python) with the same Neovim set up.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 10, 2023

FWIW, this behavior doesn't seem to occur when I'm developing in other languages (tested with C and Python) with the same Neovim set up.

The error is thrown by haskell-language-server - specifically, the hls-code-range-plugin, which provides the selection-range and folding-range features.
That's why you're not getting it with other languages.

when I escape out of insert mode (back to normal mode)

This tells me that you (or a plugin) must have an autocommand set up that executes something that causes the error to be thrown on an InsertLeave event.
haskell-tools does set up an autocommand for the InsertLeave event, which refreshes code-lenses. But the hls-code-range-plugin does not provide any code lenses, so I don't see how that could cause the error in your screen shot.
Does calling :lua vim.lsp.codelens.refresh() result in the error?

A likely culprit that might be causing error messages from the hls-code-range-plugin would be nvim-ufo: It sets up an autocommand on InsertLeave that updates folds, which uses the folding-range feature, provided by the hls-code-range-plugin.

You can check which autocommands are active by running :autocmd.
Or, to see where it is defined, you can run something like: :verbose autocmd InsertLeave

@Per48edjes
Copy link
Author

Per48edjes commented Sep 12, 2023

Does calling :lua vim.lsp.codelens.refresh() result in the error?

Doesn't seem so!

Also, that was great sleuthing -- when I disable nvim-ufo (with :UfoDisable) the issue goes away.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Hmm, interesting.
What's the output of :checkhealth haskell-tools?

Asking because I use nvim-ufo, and don't have the same error on InsertLeave. So this might be hard for the nvim-ufo author to reproduce.
It could also be a bug in the haskell-language-server version you're using. You could find that out by trying to reproduce it in VSCode with the same version.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Maybe you need to register foldingRange capabilities.
https://github.com/kevinhwang91/nvim-ufo#minimal-configuration

Although I think nvim-ufo should be checking both the server and client capabilities.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

I've just pushed a release that automatically adds foldingRange capabilities if nvim-ufo is installed: #254

Maybe that will solve the issue for you?

@Per48edjes
Copy link
Author

Per48edjes commented Sep 12, 2023

Hmmmm...I updated to #254 , but the issue is still persisting for me 😞 .

  • I've tried HLS v2.2.0.0 (for projects using 9.2.8, 9.4.6) to no avail.
    • What version are you using? Perhaps I can try to roll back to that and see if I can replicate the issue.
  • :checkhealth looks good; see output reproduced below.
haskell-tools: require("haskell-tools.health").check()

Checking for Lua dependencies ~
- OK [nvim-lua/plenary.nvim](https://github.com/nvim-lua/plenary.nvim) installed.
- OK [nvim-telescope/telescope.nvim](https://github.com/nvim-telescope/telescope.nvim) installed.

Checking external dependencies ~
- OK haskell-language-server: found haskell-language-server version: 2.2.0.0 (GHC: 8.10.7) (PATH: /Users/rdayabhai/.local/share/nvim/mason/packages/haskell-language-server/lib/haskell-language-server-2.2.0.0/bin/haskell-language-server-wrapper)
- WARNING       hoogle: not found.
  Install [ndmitchell/hoogle](https://github.com/ndmitchell/hoogle) for extended capabilities.
  Recommended for better Hoogle search performance.
  Without a local installation, the web API will be used by default.
  Required if the hoogle mode is set to "telescope-local".
  
  
- WARNING       fast-tags: not found.
  Install [fast-tags](https://hackage.haskell.org/package/fast-tags) for extended capabilities.
  Optional, for generating tags as a `tagfunc` fallback.
  
- OK curl: found curl 7.85.0 (x86_64-apple-darwin22.0) libcurl/7.85.0 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.11 nghttp2/1.47.0
- OK haskell-debug-adapter: found haskell-debug-adapter-0.0.38.0
- OK ghci-dap: found The Glorious Glasgow Haskell Compilation System, version 9.2.7

Checking config ~
- OK No errors found in config.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Hmm, I'm using haskell-language-server version 2.0.0.1. So maybe it's a haskell-language-server bug?

@Per48edjes
Copy link
Author

Tried rolling back to v2.0.0.1...same error still gets thrown!

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Can you reproduce the same behaviour in VSCode? (trying to figure out if it's an issue with haskell-language-server on MacOS or nvim-ufo). I'm afraid I don't own a mac, so I can't do this myself 😞

In the meantime, as a workaround, you can disable LSP-based folding (and use treesitter instead) for Haskell files in nvim-ufo:

require('ufo').setup {
  provider_selector = function(filetype)
    if filetype == 'haskell' then
      return { 'treesitter', 'indent' }
    end
    return nil -- use default
  end,
-- other options...
}

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

By the way, you might be able to see exactly where the error is thrown in nvim-ufo if you can reproduce it by calling:

:lua require('ufo.fold').update(0)

I think that's the function that is wrapped in vim.schedule, and because it's wrapped, we don't see the exact location.

@Per48edjes
Copy link
Author

Just downloaded VSCode and installed the following extensions:

image

The language server seems to work fine -- wasn't able to reproduce the bug with the Vim extension enabled... Let me give your most recent suggestion a shot!

@Per48edjes
Copy link
Author

Per48edjes commented Sep 12, 2023

By the way, you might be able to see exactly where the error is thrown in nvim-ufo if you can reproduce it by calling:

:lua require('ufo.fold').update(0)

I think that's the function that is wrapped in vim.schedule, and because it's wrapped, we don't see the exact location.

Hmmm, running that command doesn't do anything as far as I can tell... 🤔 It really only rears its head on that InsertLeave event.

Interestingly, running this command does reproduce the bug:

:lua require('ufo.lib.event'):emit('InsertLeave', vim.api.nvim_get_current_buf())

@Per48edjes
Copy link
Author

In the meantime, as a workaround, you can disable LSP-based folding (and use treesitter instead) for Haskell files in nvim-ufo:

require('ufo').setup {
  provider_selector = function(filetype)
    if filetype == 'haskell' then
      return { 'treesitter', 'indent' }
    end
    return nil -- use default
  end,
-- other options...
}

Updated my config with this... 🥁 ...and the issue still persists. 😆

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Interesting. So if you run

:autocmd! Ufo InsertLeave *

which should disable nvim-ufo's autocommand,
you don't get the error and you can use nvim-ufo to fold/unfold manually?

Interestingly, running this command does reproduce the bug

Hmm, and I guess it reproduces it while not in insert mode?
I'm off for today, but I'll see if that passes any other callbacks to vim.schedule in the next few days.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 12, 2023

Will give it a go with the minimal config...

Forgot about this... Were you able to reproduce it with a minimal config (that includes nvim-ufo)? - just to make sure there's not a third plugin causing this...

@Per48edjes
Copy link
Author

I'm off for today, but I'll see if that passes any other callbacks passed to vim.schedule in the next few days.

I can't tell you how much I appreciate the help / hand-holding, @mrcjkb ... thank you so very much!

Interesting. So if you run

:autocmd! Ufo InsertLeave *

which should disable nvim-ufo's autocommand, you don't get the error and you can use nvim-ufo to fold/unfold manually?

Not quite. I run :autocmd! Ufo InsertLeave *, but the same, wonky error is raised.

Hmm, and I guess it reproduces it while not in insert mode?

Yep, exactly.

@Per48edjes
Copy link
Author

Forgot about this... Were you able to reproduce it with a minimal config (that includes nvim-ufo)? - just to make sure there's not a third plugin causing this...

Working on this now (slipped through the cracks for me, too -- my fault!)...

@Per48edjes
Copy link
Author

Per48edjes commented Sep 12, 2023

With the minimal config as-is (i.e., without nvim-ufo), the error cannot be replicated.

With the minimal config and nvim-ufo installed (using tree-sitter as the main provider), the error cannot be replicated.

With the minimal config and nvim-ufo + nvim-lspconfig (using the LSP as the main provider), the error is replicated:

image

See here for the actual config used to replicate:

init.lua
-- Minimal nvim config with lazy
-- Assumes a directory in $NVIM_DATA_MINIMAL
-- Start with
--
-- export NVIM_DATA_MINIMAL=$(mktemp -d)
-- export NVIM_APP_NAME="nvim-ht-minimal"
-- nvim -u minimal.lua
--
-- Then exit out of neovim and start again.

-- Ignore default config
local config_path = vim.fn.stdpath('config')
vim.opt.rtp:remove(config_path)

-- Ignore default plugins
local data_path = vim.fn.stdpath('data')
local pack_path = data_path .. '/site'
vim.opt.packpath:remove(pack_path)

-- bootstrap lazy.nvim
data_path = assert(os.getenv('NVIM_DATA_MINIMAL'), '$NVIM_DATA_MINIMAL environment variable not set!')
local lazypath = data_path .. '/lazy/lazy.nvim'
local uv = vim.uv
  ---@diagnostic disable-next-line: deprecated
  or vim.loop
if not uv.fs_stat(lazypath) then
  vim.fn.system {
    'git',
    'clone',
    '--filter=blob:none',
    '[email protected]:folke/lazy.nvim.git',
    '--branch=stable',
    lazypath,
  }
end
vim.opt.rtp:prepend(lazypath)

local lazy = require('lazy')

lazy.setup({
  {
    'mrcjkb/haskell-tools.nvim',
    branch = '2.x.x',
    init = function()
      -- Configure haskell-tools.nvim here
      vim.g.haskell_tools = {}
    end,
    dependencies = {
      'nvim-lua/plenary.nvim',
      -- Uncomment or add any optional dependencies needed to reproduce the issue
      -- 'nvim-telescope/telescope.nvim',
      -- 'akinsho/toggleterm.nvim',
    },
    ft = { 'haskell', 'lhaskell', 'cabal', 'cabalproject' },
  },
  -- Add any other plugins needed to reproduce the issue.
  -- see https://github.com/folke/lazy.nvim#-lazynvim for details.
  {'nvim-treesitter/nvim-treesitter', cmd = ':TSUpdate'},
  {
	'kevinhwang91/nvim-ufo',
	dependencies = {'kevinhwang91/promise-async'}
  },
  {
	'neovim/nvim-lspconfig'
  },
}, { root = data_path, state = data_path .. '/lazy-state.json', lockfile = data_path .. '/lazy-lock.json' })


-- FROM NVIM-UFO MINIMAL CONFIG:
-- https://github.com/kevinhwang91/nvim-ufo#minimal-configuration

-- Option 2: nvim lsp as LSP client
-- Tell the server the capability of foldingRange,
-- Neovim hasn't added foldingRange to default capabilities, users must add it manually
local capabilities = vim.lsp.protocol.make_client_capabilities()
capabilities.textDocument.foldingRange = {
    dynamicRegistration = false,
    lineFoldingOnly = true
}
local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'}
for _, ls in ipairs(language_servers) do
    require('lspconfig')[ls].setup({
        capabilities = capabilities
        -- you can add other fields for setting up lsp server in this table
    })
end
require('ufo').setup()

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

🤔 I still can't reproduce it on my device with the minimal config you posted.

But judging by the following snippet:

local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'}
for _, ls in ipairs(language_servers) do
    require('lspconfig')[ls].setup({
        capabilities = capabilities
        -- you can add other fields for setting up lsp server in this table
    })

For me (with your minimal config), require("lspconfig").util.available_servers() returns an empty table.
But maybe in yours it somehow includes hls (which is the lspconfig configuration for haskell-language-server)?
If this is the case, then calling require('lspconfig').hls.setup() could indeed lead to a conflict.
But your astrocommunity PR (AstroNvim/astrocommunity#553) didn't remove

astronvim.lsp.skip_setup = utils.list_insert_unique(astronvim.lsp.skip_setup, "hls")

so I don't see how that could be happening.

Can you check if the client for hls is running by calling :LspInfo, or if hls has been set up by calling

:lua =vim.api.nvim_get_autocmds({ event = 'FileType', group = 'lspconfig' , pattern = 'haskell' })

@Per48edjes
Copy link
Author

Per48edjes commented Sep 13, 2023

🤔 I still can't reproduce it on my device with the minimal config you posted.

Yiiiiiikes. 🤯 Here's what's even more befuddling: I left a couple of the test buffers open for a while and came back to them...and the error stops getting thrown. But then I restart NeoVim, and the issue resurfaces.

(Note all of the observations below are for my regular, AstroVim setup.)

Here are the attached clients per :LspInfo:

 Language client log: /Users/rdayabhai/.local/state/nvim/lsp.log
 Detected filetype:   haskell
 
 3 client(s) attached to this buffer: 
 
 Client: haskell-tools.nvim (id: 1, bufnr: [1])
 	filetypes:       
 	autostart:       false
 	root directory:  /Users/rdayabhai/code/Simple-Haskell-Handbook
 	cmd:             haskell-language-server-wrapper --lsp --logfile /Users/rdayabhai/.local/state/nvim/haskell-language-server.log
 
 Client: null-ls (id: 2, bufnr: [1])
 	filetypes:       luau, lua, css, vue, typescriptreact, graphql, markdown.mdx, handlebars, typescript, javascriptreact, markdown, javascript, json, jsonc, scss, less, yaml, html, python, sh, haskell
 	autostart:       false
 	root directory:  /Users/rdayabhai/code/Simple-Haskell-Handbook
 	cmd:             <function>
 
 Client: copilot (id: 3, bufnr: [1])
 	filetypes:       
 	autostart:       false
 	root directory:  /Users/rdayabhai/code/Simple-Haskell-Handbook
 	cmd:             node /Users/rdayabhai/.local/share/nvim/lazy/copilot.lua/copilot/index.js
 
 Configured servers list: clangd, pyright, ruff_lsp, bashls, dockerls, yamlls, marksman, jsonls, lua_ls

When I run :lua =vim.api.nvim_get_autocmds({ event = 'FileType', group = 'lspconfig' , pattern = 'haskell' }), an empty table is returned: {}.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Yiiiiiikes.

Yup, that was my reaction, too.

I left a couple of the test buffers open for a while and came back to them...and the error stops getting thrown. But then I restart NeoVim, and the issue resurfaces.

Thanks for the outputs. It looks like lspconfig isn't the culprit either. Let's try some more scenarios:

  • Minimal config and nvim-ufo + nvim-lspconfig (using the LSP as the main provider) - without haskell-tools (you will need to call require('lspconfig').hls.setup {} in the minimal config, and disable the haskell-tools plugin).
  • Minimal config and nvim-ufo + haskell-tools (using the LSP as the main provider) - without lspconfig

We can try and find out what is causing haskell-language-server to throw the error with the following steps:

  • Enable haskell-language-server debug logging:
    vim.g.haskell_tools.hls.debug = true
  • Open Neovim
  • Call =require('haskell-tools').log.get_hls_logfile()
  • Delete the log file
  • Restart Neovim
  • Reproduce the error
  • Call :lua require('haskell-tools').log.nvim_open_hls_logfile()
  • Post the content here.

@Per48edjes
Copy link
Author

Followed those steps (with the current AstroNvim set up), see below for the log output:

Logs
2023-09-13T15:33:36.745236Z | Info | haskell-language-server version: 2.2.0.0 (GHC: 9.2.8) (PATH: /Users/rdayabhai/.local/share/nvim/mason/packages/haskell-language-server/lib/haskell-language-server-2.2.0.0/bin/haskell-language-server-9.2.8)
2023-09-13T15:33:36.746534Z | Info | Directory: /Users/rdayabhai/code/Simple-Haskell-Handbook
2023-09-13T15:33:36.746960Z | Info | Starting (haskell-language-server) LSP server...
  GhcideArguments {argsCommand = LSP, argsCwd = Nothing, argsShakeProfiling = Nothing, argsTesting = False, argsExamplePlugin = False, argsLogLevel = Debug, argsLogFile = Just "/Users/rdayabhai/.local/state/nvim/haskell-language-server.log", argsLogStderr = True, argsLogClient = False, argsThreads = 0, argsProjectGhcVersion = False}
  PluginIds: [ pragmas-suggest
             , pragmas-completion
             , ghcide-extend-import-action
             , LSPRecorderCallback
             , class
             , splice
             , ormolu
             , stylish-haskell
             , ghcide-code-actions-fill-holes
             , callHierarchy
             , moduleName
             , changeTypeSignature
             , ghcide-completions
             , retrie
             , explicit-fields
             , alternateNumberFormat
             , overloaded-record-dot
             , cabal-fmt
             , codeRange
             , qualifyImportedNames
             , hlint
             , floskell
             , ghcide-code-actions-imports-exports
             , cabal
             , ghcide-code-actions-bindings
             , ghcide-type-lenses
             , ghcide-hover-and-symbols
             , ghcide-code-actions-type-signatures
             , rename
             , importLens
             , fourmolu
             , gadt
             , eval
             , ghcide-core
             , explicit-fixity
             , pragmas-disable ]
2023-09-13T15:33:36.752327Z | Info | Logging heap statistics every 60.00s
2023-09-13T15:33:36.937950Z | Info | Starting LSP server...
  If you are seeing this in a terminal, you probably should have run WITHOUT the --lsp option!
  PluginIds: [ pragmas-suggest
             , pragmas-completion
             , ghcide-extend-import-action
             , LSPRecorderCallback
             , class
             , splice
             , ormolu
             , stylish-haskell
             , ghcide-code-actions-fill-holes
             , callHierarchy
             , moduleName
             , changeTypeSignature
             , ghcide-completions
             , retrie
             , explicit-fields
             , alternateNumberFormat
             , overloaded-record-dot
             , cabal-fmt
             , codeRange
             , qualifyImportedNames
             , hlint
             , floskell
             , ghcide-code-actions-imports-exports
             , cabal
             , ghcide-code-actions-bindings
             , ghcide-type-lenses
             , ghcide-hover-and-symbols
             , ghcide-code-actions-type-signatures
             , rename
             , importLens
             , fourmolu
             , gadt
             , eval
             , ghcide-core
             , explicit-fixity
             , pragmas-disable ]
2023-09-13T15:33:36.939808Z | Info | Starting server
2023-09-13T15:33:36.942396Z | Info | Started LSP server in 0.00s
2023-09-13T15:33:36.947121Z | Debug | executing command: stack setup --silent
2023-09-13T15:33:38.050366Z | Debug | executing command: stack exec ghc -- --print-libdir
2023-09-13T15:33:38.443826Z | Debug | Setting initial dynflags...
2023-09-13T15:33:38.444011Z | Debug | shouldRunSubset: False
2023-09-13T15:33:38.444178Z | Debug | Initializing exports map from hiedb
2023-09-13T15:33:38.444860Z | Info | Registering IDE configuration: IdeConfiguration {workspaceFolders = fromList [NormalizedUri 105494707450451055 "file:///Users/rdayabhai/code/Simple-Haskell-Handbook"], clientSettings = hashed Nothing}
2023-09-13T15:33:38.446308Z | Debug | LSP: set new config: {
  "cabalFormattingProvider": "cabalfmt",
  "checkParents": "CheckOnSave",
  "checkProject": true,
  "formattingProvider": "fourmolu",
  "maxCompletions": 40,
  "plugin": {
    "alternateNumberFormat": { "globalOn": true },
    "callHierarchy": { "globalOn": true },
    "changeTypeSignature": { "globalOn": true },
    "class": { "codeActionsOn": true, "codeLensOn": true },
    "eval": { "config": { "diff": true, "exception": true }, "globalOn": true },
    "excplicitFixity": { "globalOn": true },
    "gadt": { "globalOn": true },
    "ghcide-code-actions-bindings": { "globalOn": true },
    "ghcide-code-actions-fill-holes": { "globalOn": true },
    "ghcide-code-actions-imports-exports": { "globalOn": true },
    "ghcide-code-actions-type-signatures": { "globalOn": true },
    "ghcide-completions": {
      "config": { "autoExtendOn": true, "snippetsOn": true },
      "globalOn": true
    },
    "ghcide-hover-and-symbols": { "hoverOn": true, "symbolsOn": true },
    "ghcide-type-lenses": { "config": { "mode": "always" }, "globalOn": true },
    "haddockComments": { "globalOn": true },
    "hlint": { "codeActionsOn": true, "diagnosticsOn": true },
    "importLens": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "globalOn": true
    },
    "moduleName": { "globalOn": true },
    "pragmas": { "codeActionsOn": true, "completionOn": true },
    "qualifyImportedNames": { "globalOn": true },
    "refineImports": { "codeActionsOn": true, "codeLensOn": true },
    "rename": { "config": { "crossModule": true }, "globalOn": true },
    "retrie": { "globalOn": true },
    "splice": { "globalOn": true },
    "tactics": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "config": {
        "auto_gas": 4,
        "max_use_ctor_actions": 5,
        "proofstate_styling": true,
        "timeout_duration": 2
      },
      "hoverOn": true
    }
  }
}
2023-09-13T15:33:38.447178Z | Debug | Configuration changed: Config {checkParents = CheckOnSave, checkProject = True, formattingProvider = "fourmolu", cabalFormattingProvider = "cabalfmt", maxCompletions = 40, plugins = fromList [(PluginId "alternateNumberFormat",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "callHierarchy",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "changeTypeSignature",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "class",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "eval",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("diff",Bool True),("exception",Bool True)]}),(PluginId "excplicitFixity",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "gadt",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-bindings",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-fill-holes",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-imports-exports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-type-signatures",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-completions",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("autoExtendOn",Bool True),("snippetsOn",Bool True)]}),(PluginId "ghcide-hover-and-symbols",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-type-lenses",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("mode",String "always")]}),(PluginId "haddockComments",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "hlint",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "importLens",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "moduleName",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "pragmas",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "qualifyImportedNames",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "refineImports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "rename",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("crossModule",Bool True)]}),(PluginId "retrie",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "splice",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "tactics",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("auto_gas",Number 4.0),("max_use_ctor_actions",Number 5.0),("proofstate_styling",Bool True),("timeout_duration",Number 2.0)]})]}
2023-09-13T15:33:38.448490Z | Debug | Shake session initialized
2023-09-13T15:33:38.449859Z | Debug | Done initializing exports map from hiedb. Size: 60
2023-09-13T15:33:38.451580Z | Debug | Warning: Client does not support watched files. Falling back to OS polling
2023-09-13T15:33:38.451735Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:38.451771Z | Debug | Restarting build session due to config change
Action Queue: []
Keys: [GetClientSettings; ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:38.452197Z | Debug | VFS: opening file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:38.452815Z | Debug | Set files of interest to: fromList [(NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs",Modified {firstOpen = True})]
2023-09-13T15:33:38.453039Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:38.453116Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetClientSettings; 
      , IsFileOfInterest; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:38.453340Z | Debug | Opened text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:38.454178Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:38.454222Z | Debug | Finished: codeLens.config Took: 0.00s
2023-09-13T15:33:38.454275Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "fp" "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:38.455156Z | Info | Cradle path: src/Docker.hs
2023-09-13T15:33:38.455344Z | Warning | No [cradle](https://github.com/mpickering/hie-bios#hie-bios) found for src/Docker.hs.
Proceeding with [implicit cradle](https://hackage.haskell.org/package/implicit-hie).
You should ignore this message, unless you see a 'Multi Cradle: No prefixes matched' error.
2023-09-13T15:33:38.455501Z | Debug | LSP: set new config: {
  "cabalFormattingProvider": "cabalfmt",
  "checkParents": "CheckOnSave",
  "checkProject": true,
  "formattingProvider": "fourmolu",
  "maxCompletions": 40,
  "plugin": {
    "alternateNumberFormat": { "globalOn": true },
    "callHierarchy": { "globalOn": true },
    "changeTypeSignature": { "globalOn": true },
    "class": { "codeActionsOn": true, "codeLensOn": true },
    "eval": { "config": { "diff": true, "exception": true }, "globalOn": true },
    "excplicitFixity": { "globalOn": true },
    "gadt": { "globalOn": true },
    "ghcide-code-actions-bindings": { "globalOn": true },
    "ghcide-code-actions-fill-holes": { "globalOn": true },
    "ghcide-code-actions-imports-exports": { "globalOn": true },
    "ghcide-code-actions-type-signatures": { "globalOn": true },
    "ghcide-completions": {
      "config": { "autoExtendOn": true, "snippetsOn": true },
      "globalOn": true
    },
    "ghcide-hover-and-symbols": { "hoverOn": true, "symbolsOn": true },
    "ghcide-type-lenses": { "config": { "mode": "always" }, "globalOn": true },
    "haddockComments": { "globalOn": true },
    "hlint": { "codeActionsOn": true, "diagnosticsOn": true },
    "importLens": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "globalOn": true
    },
    "moduleName": { "globalOn": true },
    "pragmas": { "codeActionsOn": true, "completionOn": true },
    "qualifyImportedNames": { "globalOn": true },
    "refineImports": { "codeActionsOn": true, "codeLensOn": true },
    "rename": { "config": { "crossModule": true }, "globalOn": true },
    "retrie": { "globalOn": true },
    "splice": { "globalOn": true },
    "tactics": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "config": {
        "auto_gas": 4,
        "max_use_ctor_actions": 5,
        "proofstate_styling": true,
        "timeout_duration": 2
      },
      "hoverOn": true
    }
  }
}
2023-09-13T15:33:38.456921Z | Debug | Configuration changed: Config {checkParents = CheckOnSave, checkProject = True, formattingProvider = "fourmolu", cabalFormattingProvider = "cabalfmt", maxCompletions = 40, plugins = fromList [(PluginId "alternateNumberFormat",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "callHierarchy",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "changeTypeSignature",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "class",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "eval",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("diff",Bool True),("exception",Bool True)]}),(PluginId "excplicitFixity",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "gadt",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-bindings",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-fill-holes",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-imports-exports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-type-signatures",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-completions",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("autoExtendOn",Bool True),("snippetsOn",Bool True)]}),(PluginId "ghcide-hover-and-symbols",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-type-lenses",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("mode",String "always")]}),(PluginId "haddockComments",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "hlint",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "importLens",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "moduleName",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "pragmas",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "qualifyImportedNames",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "refineImports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "rename",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("crossModule",Bool True)]}),(PluginId "retrie",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "splice",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "tactics",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("auto_gas",Number 4.0),("max_use_ctor_actions",Number 5.0),("proofstate_styling",Bool True),("timeout_duration",Number 2.0)]})]}
2023-09-13T15:33:38.458409Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:38.458430Z | Debug | Restarting build session due to config change
Action Queue: [ ImportActions
              , ModuleName.ghcSession
              , eval.GetParsedModuleWithComments
              , codeLens.GetGlobalBindingTypeSigs
              , Outline
              , classplugin.TypeCheck ]
Keys: [ GetClientSettings; 
      , IsFileOfInterest; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:38.459055Z | Debug | LSP: set new config: {
  "cabalFormattingProvider": "cabalfmt",
  "checkParents": "CheckOnSave",
  "checkProject": true,
  "formattingProvider": "fourmolu",
  "maxCompletions": 40,
  "plugin": {
    "alternateNumberFormat": { "globalOn": true },
    "callHierarchy": { "globalOn": true },
    "changeTypeSignature": { "globalOn": true },
    "class": { "codeActionsOn": true, "codeLensOn": true },
    "eval": { "config": { "diff": true, "exception": true }, "globalOn": true },
    "excplicitFixity": { "globalOn": true },
    "gadt": { "globalOn": true },
    "ghcide-code-actions-bindings": { "globalOn": true },
    "ghcide-code-actions-fill-holes": { "globalOn": true },
    "ghcide-code-actions-imports-exports": { "globalOn": true },
    "ghcide-code-actions-type-signatures": { "globalOn": true },
    "ghcide-completions": {
      "config": { "autoExtendOn": true, "snippetsOn": true },
      "globalOn": true
    },
    "ghcide-hover-and-symbols": { "hoverOn": true, "symbolsOn": true },
    "ghcide-type-lenses": { "config": { "mode": "always" }, "globalOn": true },
    "haddockComments": { "globalOn": true },
    "hlint": { "codeActionsOn": true, "diagnosticsOn": true },
    "importLens": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "globalOn": true
    },
    "moduleName": { "globalOn": true },
    "pragmas": { "codeActionsOn": true, "completionOn": true },
    "qualifyImportedNames": { "globalOn": true },
    "refineImports": { "codeActionsOn": true, "codeLensOn": true },
    "rename": { "config": { "crossModule": true }, "globalOn": true },
    "retrie": { "globalOn": true },
    "splice": { "globalOn": true },
    "tactics": {
      "codeActionsOn": true,
      "codeLensOn": true,
      "config": {
        "auto_gas": 4,
        "max_use_ctor_actions": 5,
        "proofstate_styling": true,
        "timeout_duration": 2
      },
      "hoverOn": true
    }
  }
}
2023-09-13T15:33:38.459439Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:38.460146Z | Debug | Configuration changed: Config {checkParents = CheckOnSave, checkProject = True, formattingProvider = "fourmolu", cabalFormattingProvider = "cabalfmt", maxCompletions = 40, plugins = fromList [(PluginId "alternateNumberFormat",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "callHierarchy",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "changeTypeSignature",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "class",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "eval",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("diff",Bool True),("exception",Bool True)]}),(PluginId "excplicitFixity",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "gadt",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-bindings",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-fill-holes",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-imports-exports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-code-actions-type-signatures",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-completions",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("autoExtendOn",Bool True),("snippetsOn",Bool True)]}),(PluginId "ghcide-hover-and-symbols",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "ghcide-type-lenses",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("mode",String "always")]}),(PluginId "haddockComments",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "hlint",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "importLens",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "moduleName",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "pragmas",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "qualifyImportedNames",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "refineImports",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "rename",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("crossModule",Bool True)]}),(PluginId "retrie",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "splice",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList []}),(PluginId "tactics",PluginConfig {plcGlobalOn = True, plcCallHierarchyOn = True, plcCodeActionsOn = True, plcCodeLensOn = True, plcDiagnosticsOn = True, plcHoverOn = True, plcSymbolsOn = True, plcCompletionOn = True, plcRenameOn = True, plcSelectionRangeOn = True, plcFoldingRangeOn = True, plcConfig = fromList [("auto_gas",Number 4.0),("max_use_ctor_actions",Number 5.0),("proofstate_styling",Bool True),("timeout_duration",Number 2.0)]})]}
2023-09-13T15:33:38.460597Z | Debug | Cradle: Cradle {cradleRootDir = "/Users/rdayabhai/code/Simple-Haskell-Handbook", cradleOptsProg = CradleAction: Stack}
2023-09-13T15:33:38.462750Z | Info | invoking build tool to determine build flags (this may take some time depending on the cache)
2023-09-13T15:33:38.463087Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:38.463107Z | Debug | Restarting build session due to config change
Action Queue: [ ImportActions
              , ModuleName.ghcSession
              , eval.GetParsedModuleWithComments
              , codeLens.GetGlobalBindingTypeSigs
              , Outline
              , classplugin.TypeCheck ]
Keys: [ GetClientSettings; 
      , IsFileOfInterest; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:38.463211Z | Debug | executing command: stack repl --no-nix-pure --with-ghc /Users/rdayabhai/.cache/hie-bios/wrapper-b54f81dea4c0e6d1626911c526bc4e36 quad:lib
2023-09-13T15:33:38.464387Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:39.116264Z | Debug | DocumentHighlight request at position 14:42 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:39.116600Z | Debug | LOOKUP PERSISTENT FOR: GetHieAst
2023-09-13T15:33:39.116880Z | Debug | LOADING HIE FILE FOR /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:39.120957Z | Debug | SUCCEEDED LOADING HIE FILE FOR /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie
2023-09-13T15:33:39.428531Z | Debug | quad> initial-build-steps (lib)
2023-09-13T15:33:39.817208Z | Debug | Configuring GHCi with the following packages: quad.
2023-09-13T15:33:39.924159Z | Debug | executing command: stack path --ghc-package-path
2023-09-13T15:33:40.460392Z | Debug | /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/install/x86_64-osx/34b5298e4529c0881ff9db353c1a31a153af430bfac96ef42ec9d5a64c972879/9.2.8/pkgdb:/Users/rdayabhai/.stack/snapshots/x86_64-osx/34b5298e4529c0881ff9db353c1a31a153af430bfac96ef42ec9d5a64c972879/9.2.8/pkgdb:/Users/rdayabhai/.ghcup/ghc/9.2.8/lib/ghc-9.2.8/lib/package.conf.d
2023-09-13T15:33:40.476907Z | Debug | executing command: stack setup --silent
2023-09-13T15:33:41.496373Z | Debug | executing command: stack exec ghc -- --print-libdir
2023-09-13T15:33:41.879368Z | Debug | Session loading result: Right (ComponentOptions {componentOptions = ["-i","-odir=/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/odir","-hidir=/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/odir","-hide-all-packages","-XHaskell2010","-XBlockArguments","-XDeriveAnyClass","-XDeriveGeneric","-XLambdaCase","-XNoImplicitPrelude","-XOverloadedStrings","-XStrictData","-i/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build","-i/Users/rdayabhai/code/Simple-Haskell-Handbook/src","-i/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen","-i/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen","-stubdir=/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build","-package-id=aeson-2.0.3.0-B56EwkCboVUIb59k2pHz9h","-package-id=async-2.2.4-KzhLbRYpCCLJ5d8bnXQLq3","-package-id=base-4.16.4.0","-package-id=butcher-1.3.3.2-1cfNsCB1zaB8x57ULDFlTu","-package-id=hslogger-1.3.1.0-DUgHt41v9SYC5FomRb3mRf","-package-id=http-client-0.7.13.1-KftncbXpmOyi2PKoGSfFH","-package-id=http-conduit-2.3.8.1-GAHsHxOX7htCqupMD7W6xK","-package-id=http-types-0.12.3-DOjHG19CWso9L585xkx2dm","-package-id=network-3.1.4.0-6hrQ6YwsqbgFbtfSa3dgdY","-package-id=record-hasfield-1.0-CiLArFPQsgBLZC7Dz4krwU","-package-id=rio-0.1.22.0-KsLQqOQjIAGI53X5wIB8Ba","-package-id=scotty-0.12.1-DJMqjihXYBN8cJrCp4qFYQ","-package-id=serialise-0.2.6.0-KSGgo7S5KUX8si261wpb7n","-package-id=stm-2.5.0.2","-package-id=time-1.11.1.1","-package-id=typed-process-0.2.11.0-8MqWQ1N30DB7hh3GifRqHF","-package-id=wai-cors-0.2.7-I6W5Xe4tkBSLPiHxUgpdWv","-package-id=yaml-0.11.11.0-45oHVkFNcFfLVvU8ZNNDj6","-F","-pgmF=record-dot-preprocessor","-optP-include","-optP/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/ghci/d6e9c84f/cabal_macros.h","-ghci-script=/Users/rdayabhai/.cache/stack/ghci-script/f1f4b723/ghci-script","-package-db","/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/install/x86_64-osx/34b5298e4529c0881ff9db353c1a31a153af430bfac96ef42ec9d5a64c972879/9.2.8/pkgdb","-package-db","/Users/rdayabhai/.stack/snapshots/x86_64-osx/34b5298e4529c0881ff9db353c1a31a153af430bfac96ef42ec9d5a64c972879/9.2.8/pkgdb","-package-db","/Users/rdayabhai/.ghcup/ghc/9.2.8/lib/ghc-9.2.8/lib/package.conf.d"], componentRoot = "/Users/rdayabhai/code/Simple-Haskell-Handbook", componentDependencies = ["quad.cabal","package.yaml","stack.yaml"]},"/Users/rdayabhai/.ghcup/ghc/9.2.8/lib/ghc-9.2.8/lib")
2023-09-13T15:33:41.962275Z | Info | Interface files cache directory: /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395
2023-09-13T15:33:41.963212Z | Info | Making new HscEnv. In-place unit ids: [main]
2023-09-13T15:33:41.992126Z | Debug | New component cache HscEnvEq: (([],Just HscEnvEq 16),fromList [("package.yaml",Just 2023-07-23 00:13:36.752094141 UTC),("quad.cabal",Just 2023-09-12 16:45:00.504518835 UTC),("stack.yaml",Just 2023-09-12 13:50:49.551927419 UTC)])
2023-09-13T15:33:41.997737Z | Debug | Known files updated:
  fromList [(TargetFile NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs",fromList ["/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"]),(TargetModule (ModuleName "Socket"),fromList ["/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Socket.hs"]),(TargetModule (ModuleName "Docker"),fromList ["/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"]),(TargetModule (ModuleName "Paths_quad"),fromList ["/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen/Paths_quad.hs"]),(TargetModule (ModuleName "Core"),fromList ["/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Core.hs"])]
2023-09-13T15:33:41.998310Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:41.998351Z | Debug | Restarting build session due to new component
Action Queue: [ ImportActions
              , ModuleName.ghcSession
              , eval.GetParsedModuleWithComments
              , codeLens.GetGlobalBindingTypeSigs
              , C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
              , Outline
              , classplugin.TypeCheck ]
Keys: [ IsFileOfInterest; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GhcSessionIO; 
      , GetKnownTargets;  ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:42.000160Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:42.002683Z | Debug | Finished: ModuleName.ghcSession Took: 0.00s
2023-09-13T15:33:42.002901Z | Debug | moduleName: ModuleName.SrcPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/src
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen ]
2023-09-13T15:33:42.003146Z | Debug | moduleName: ModuleName.NormalisedPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/src/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen/ ]
2023-09-13T15:33:42.003488Z | Debug | moduleName: ModuleName.AbsoluteFilePath: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:42.003736Z | Debug | moduleName: ModuleName.CorrectNames: [Docker]
2023-09-13T15:33:42.003931Z | Debug | moduleName: ModuleName.BestName: Docker
2023-09-13T15:33:42.036120Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:42.036334Z | Debug | Finished: Outline Took: 0.04s
2023-09-13T15:33:42.036348Z | Debug | Finished: ModuleName.GetParsedModule Took: 0.03s
2023-09-13T15:33:42.036376Z | Debug | moduleName: ModuleName.StatedNameMaybe: Docker
2023-09-13T15:33:42.036558Z | Debug | Finished: eval.GetParsedModuleWithComments Took: 0.04s
2023-09-13T15:33:42.036561Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "comments" "Comments {lineComments = fromList [], blockComments = fromList [(Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 0, _character = 185}},RawBlockComment {getRawBlockComment = \"{-# LANGUAGE DuplicateRecordFields, DataKinds, FlexibleInstances, TypeApplications, FlexibleContexts, MultiParamTypeClasses, TypeFamilies, TypeOperators, GADTs, UndecidableInstances #-}\"}),(Range {_start = Position {_line = 1, _character = 0}, _end = Position {_line = 1, _character = 38}},RawBlockComment {getRawBlockComment = \"{- HLINT ignore \\\"Redundant bracket\\\" -}\"})]}"
2023-09-13T15:33:42.037757Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "Tests" "0 tests in 2 sections 0 setups 0 lenses."
2023-09-13T15:33:42.038433Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "tests" "0.00s"
2023-09-13T15:33:42.038555Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "codeLens" "3.58s"
2023-09-13T15:33:42.106330Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:42.399831Z | Debug | Finished: classplugin.TypeCheck Took: 0.40s
2023-09-13T15:33:42.400025Z | Debug | Finished: codeLens.GetGlobalBindingTypeSigs Took: 0.40s
2023-09-13T15:33:42.400366Z | Debug | Finished: classplugin.GetInstanceBindTypeSigs Took: 0.00s
2023-09-13T15:33:42.400427Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GhcSession Took: 0.00s
2023-09-13T15:33:42.400624Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetFileContents Took: 0.00s
2023-09-13T15:33:42.400672Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetParsedModuleWithComments Took: 0.00s
2023-09-13T15:33:42.400895Z | Debug | Finished: ImportActions Took: 0.40s
2023-09-13T15:33:42.476217Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:42.478500Z | Debug | Finished: ImportActions Took: 0.00s
2023-09-13T15:33:42.484043Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.49s
2023-09-13T15:33:42.495179Z | Debug | Finished: InitialLoad Took: 0.50s
2023-09-13T15:33:44.807088Z | Debug | Set files of interest to: fromList [(NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs",Modified {firstOpen = False})]
2023-09-13T15:33:44.807405Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:44.807445Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ IsFileOfInterest; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:44.807759Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:44.830443Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:44.830625Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:44.855336Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:44.921118Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:44.959465Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:44.959473Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:44.959793Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:44.987174Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:44.987421Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:45.012622Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:45.104843Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:45.570525Z | Debug | DocumentHighlight request at position 15:1 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:45.570957Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:47.510550Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:47.510556Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:47.510964Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:47.533973Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:47.534151Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:47.565629Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:47.625528Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:48.917309Z | Debug | DocumentHighlight request at position 16:1 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:48.917671Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:49.368699Z | Debug | Finished: classplugin.TypeCheck Took: 0.00s
2023-09-13T15:33:49.368780Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "fp" "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:49.368783Z | Debug | Finished: codeLens.config Took: 0.00s
2023-09-13T15:33:49.368889Z | Debug | Finished: ModuleName.ghcSession Took: 0.00s
2023-09-13T15:33:49.368928Z | Debug | moduleName: ModuleName.SrcPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/src
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen ]
2023-09-13T15:33:49.369222Z | Debug | Finished: classplugin.GetInstanceBindTypeSigs Took: 0.00s
2023-09-13T15:33:49.369425Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GhcSession Took: 0.00s
2023-09-13T15:33:49.369470Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetFileContents Took: 0.00s
2023-09-13T15:33:49.369505Z | Debug | moduleName: ModuleName.NormalisedPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/src/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen/ ]
2023-09-13T15:33:49.369826Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetParsedModuleWithComments Took: 0.00s
2023-09-13T15:33:49.369932Z | Debug | Finished: codeLens.GetGlobalBindingTypeSigs Took: 0.00s
2023-09-13T15:33:49.370040Z | Debug | moduleName: ModuleName.AbsoluteFilePath: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:49.370044Z | Debug | Finished: eval.GetParsedModuleWithComments Took: 0.00s
2023-09-13T15:33:49.370048Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "comments" "Comments {lineComments = fromList [], blockComments = fromList [(Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 0, _character = 185}},RawBlockComment {getRawBlockComment = \"{-# LANGUAGE DuplicateRecordFields, DataKinds, FlexibleInstances, TypeApplications, FlexibleContexts, MultiParamTypeClasses, TypeFamilies, TypeOperators, GADTs, UndecidableInstances #-}\"}),(Range {_start = Position {_line = 1, _character = 0}, _end = Position {_line = 1, _character = 38}},RawBlockComment {getRawBlockComment = \"{- HLINT ignore \\\"Redundant bracket\\\" -}\"})]}"
2023-09-13T15:33:49.370440Z | Debug | moduleName: ModuleName.CorrectNames: [Docker]
2023-09-13T15:33:49.370495Z | Debug | Finished: ImportActions Took: 0.00s
2023-09-13T15:33:49.370662Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "Tests" "0 tests in 2 sections 0 setups 0 lenses."
2023-09-13T15:33:49.370774Z | Debug | moduleName: ModuleName.BestName: Docker
2023-09-13T15:33:49.371136Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "tests" "0.00s"
2023-09-13T15:33:49.371294Z | Debug | Finished: ModuleName.GetParsedModule Took: 0.00s
2023-09-13T15:33:49.371317Z | Debug | moduleName: ModuleName.StatedNameMaybe: Docker
2023-09-13T15:33:49.371390Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "codeLens" "0.00s"
2023-09-13T15:33:49.372269Z | Debug | Finished: FoldingRange Took: 0.00s
2023-09-13T15:33:49.372900Z | Debug | Finished: ImportActions Took: 0.00s
2023-09-13T15:33:49.819142Z | Debug | DocumentHighlight request at position 15:1 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:49.819441Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:51.733531Z | Debug | DocumentHighlight request at position 14:1 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:51.733966Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.435378Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:52.435379Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:52.435690Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:52.437403Z | Debug | LOOKUP PERSISTENT FOR: LocalCompletions
2023-09-13T15:33:52.457213Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:52.457314Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:52.457409Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.457636Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:52.457681Z | Debug | LOOKUP PERSISTENT FOR: GetBindings
2023-09-13T15:33:52.464396Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.01s
2023-09-13T15:33:52.465389Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.01s
2023-09-13T15:33:52.465413Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:52.465440Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.466476Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:52.485603Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:52.591399Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:52.591448Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:52.591666Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:52.613007Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:52.613153Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:52.637261Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:52.793727Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.793942Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:52.826776Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:52.826808Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:52.827141Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:52.851390Z | Debug | Finished: Outline Took: 0.02s
2023-09-13T15:33:52.851735Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:52.851916Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:52.873924Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:52.873924Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:52.874169Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:52.880232Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:52.881010Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:52.881136Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.904699Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:52.906040Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:52.906281Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:52.906481Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.906562Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.906935Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.907742Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.909190Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:52.927831Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:52.927838Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:52.928037Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:52.933024Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:52.934536Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:52.934562Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:52.955868Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:52.957977Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.958148Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:52.958380Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.958451Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:52.958860Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:52.960145Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:53.032995Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:53.035975Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:53.037775Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:53.702646Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:53.702664Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:53.703001Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:53.704901Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:53.705668Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:53.712582Z | Debug | Finished:  Took: 0.01s
2023-09-13T15:33:53.794878Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.09s
2023-09-13T15:33:53.796191Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:53.796380Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:53.796614Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.09s
2023-09-13T15:33:53.796656Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.09s
2023-09-13T15:33:53.798342Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.09s
2023-09-13T15:33:53.799448Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.09s
2023-09-13T15:33:53.801583Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:53.818902Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:53.891469Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:53.891470Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:53.891746Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:53.895908Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:53.897731Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:53.899848Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:53.917859Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:53.919966Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:53.920309Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:53.920597Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:53.920611Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:53.921120Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:53.922727Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.03s
2023-09-13T15:33:53.923857Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:54.252821Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:54.260396Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:54.260396Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:54.260597Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:54.263772Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:54.263940Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:54.266344Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:54.286479Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:54.287461Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:54.287564Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:54.287778Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:54.287786Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:54.288013Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:54.288672Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:54.289860Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:54.305815Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:54.991724Z | Debug | Finished build session
AsyncCancelled
2023-09-13T15:33:54.991805Z | Debug | Restarting build session due to /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs (modified)
Action Queue: []
Keys: [ GetModificationTime; /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
      , GetModificationTime; /Users/rdayabhai/.cache/ghcide/main-bbb5fea6fe011fffdd7eefa61c06ec3b11d41395/Docker.hie ]
Aborting previous build session took 0.00s 
2023-09-13T15:33:54.992077Z | Debug | Modified text document: file:///Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:54.995205Z | Debug | Finished: Completion Took: 0.00s
2023-09-13T15:33:54.995612Z | Debug | Finished: C:GhcSession:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:33:55.000146Z | Debug | Finished:  Took: 0.00s
2023-09-13T15:33:55.016909Z | Debug | Finished: C:GetModSummaryWithoutTimestamps:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:55.017983Z | Debug | Finished: C:NonLocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:55.018203Z | Debug | Finished: C:GetParsedModule:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:55.018336Z | Debug | hlint: Getting hlint ideas for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:55.018366Z | Debug | Finished: C:LocalCompletions:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:55.018470Z | Debug | hlint: Using extensions for  NormalizedFilePath "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs": [ UndecidableInstances
                                                                                                               , MonomorphismRestriction
                                                                                                               , MonoLocalBinds
                                                                                                               , DeepSubsumption
                                                                                                               , RelaxedPolyRec
                                                                                                               , ForeignFunctionInterface
                                                                                                               , TypeFamilies
                                                                                                               , OverloadedStrings
                                                                                                               , DisambiguateRecordFields
                                                                                                               , GADTs
                                                                                                               , GADTSyntax
                                                                                                               , DoAndIfThenElse
                                                                                                               , BlockArguments
                                                                                                               , DataKinds
                                                                                                               , DeriveGeneric
                                                                                                               , DeriveAnyClass
                                                                                                               , TypeSynonymInstances
                                                                                                               , FlexibleContexts
                                                                                                               , FlexibleInstances
                                                                                                               , ConstrainedClassMethods
                                                                                                               , MultiParamTypeClasses
                                                                                                               , EmptyDataDecls
                                                                                                               , KindSignatures
                                                                                                               , PatternGuards
                                                                                                               , TypeOperators
                                                                                                               , ExplicitNamespaces
                                                                                                               , DatatypeContexts
                                                                                                               , TraditionalRecordSyntax
                                                                                                               , LambdaCase
                                                                                                               , DuplicateRecordFields
                                                                                                               , TypeApplications
                                                                                                               , StrictData
                                                                                                               , StarIsType
                                                                                                               , CUSKs
                                                                                                               , FieldSelectors ]
2023-09-13T15:33:55.019252Z | Debug | Finished: C:GetBindings:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.02s
2023-09-13T15:33:55.021256Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:55.042565Z | Debug | Finished: Outline Took: 0.00s
2023-09-13T15:33:56.080276Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "fp" "/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs"
2023-09-13T15:33:56.080331Z | Debug | Finished: classplugin.TypeCheck Took: 0.00s
2023-09-13T15:33:56.080386Z | Debug | Finished: codeLens.config Took: 0.00s
2023-09-13T15:33:56.080631Z | Debug | Finished: ModuleName.ghcSession Took: 0.00s
2023-09-13T15:33:56.080675Z | Debug | moduleName: ModuleName.SrcPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/src
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen
                                 , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen ]
2023-09-13T15:33:56.080905Z | Debug | moduleName: ModuleName.NormalisedPaths: [ /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/src/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/autogen/
                                        , /Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/dist/x86_64-osx/Cabal-3.6.3.0/build/global-autogen/ ]
2023-09-13T15:33:56.081042Z | Debug | Finished: classplugin.GetInstanceBindTypeSigs Took: 0.00s
2023-09-13T15:33:56.081060Z | Debug | Finished: eval.GetParsedModuleWithComments Took: 0.00s
2023-09-13T15:33:56.081084Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "comments" "Comments {lineComments = fromList [], blockComments = fromList [(Range {_start = Position {_line = 0, _character = 0}, _end = Position {_line = 0, _character = 185}},RawBlockComment {getRawBlockComment = \"{-# LANGUAGE DuplicateRecordFields, DataKinds, FlexibleInstances, TypeApplications, FlexibleContexts, MultiParamTypeClasses, TypeFamilies, TypeOperators, GADTs, UndecidableInstances #-}\"}),(Range {_start = Position {_line = 1, _character = 0}, _end = Position {_line = 1, _character = 38}},RawBlockComment {getRawBlockComment = \"{- HLINT ignore \\\"Redundant bracket\\\" -}\"})]}"
2023-09-13T15:33:56.081126Z | Debug | moduleName: ModuleName.AbsoluteFilePath: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:56.081163Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GhcSession Took: 0.00s
2023-09-13T15:33:56.081209Z | Debug | Finished: codeLens.GetGlobalBindingTypeSigs Took: 0.00s
2023-09-13T15:33:56.081235Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetFileContents Took: 0.00s
2023-09-13T15:33:56.081254Z | Debug | Finished: classplugin.insertPragmaIfNotPresent.GetParsedModuleWithComments Took: 0.00s
2023-09-13T15:33:56.081254Z | Debug | Finished: ImportActions Took: 0.00s
2023-09-13T15:33:56.081369Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "Tests" "0 tests in 2 sections 0 setups 0 lenses."
2023-09-13T15:33:56.081420Z | Debug | moduleName: ModuleName.CorrectNames: [Docker]
2023-09-13T15:33:56.082026Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "tests" "0.00s"
2023-09-13T15:33:56.082121Z | Debug | moduleName: ModuleName.BestName: Docker
2023-09-13T15:33:56.082225Z | Debug | src/Ide/Plugin/Eval/CodeLens.hs:141:15 "codeLens" "0.00s"
2023-09-13T15:33:56.082369Z | Debug | Finished: ModuleName.GetParsedModule Took: 0.00s
2023-09-13T15:33:56.082381Z | Debug | moduleName: ModuleName.StatedNameMaybe: Docker
2023-09-13T15:33:56.092231Z | Debug | Finished: FoldingRange Took: 0.00s
2023-09-13T15:33:56.092247Z | Debug | codeRange: Rule Failed: GetCodeRange
2023-09-13T15:33:56.093913Z | Debug | Finished: ImportActions Took: 0.00s
2023-09-13T15:33:58.523146Z | Debug | DocumentHighlight request at position 14:3 in file: /Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs
2023-09-13T15:33:58.523442Z | Debug | Finished: C:GetHieAst:/Users/rdayabhai/code/Simple-Haskell-Handbook/src/Docker.hs Took: 0.00s
2023-09-13T15:34:36.752619Z | Info | Live bytes: 129.95MB Heap size: 1104.15MB

Will try those other scenarios later today!

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Will try those other scenarios later today!

🙏

/Users/rdayabhai/code/Simple-Haskell-Handbook/.stack-work/

Hmm, maybe it's project-specific?
I've been trying to reproduce it with a test file that is not part of a project. I just tried with a Stack project, too, but to no avail, unfortunately.

Is the project you're working with available online?
Does the error also occur in non-project files?

@Per48edjes
Copy link
Author

Hmm, maybe it's project-specific? Does the error also occur in non-project files?

Definitely not project-specific ... the error shows up for all projects and even standalone *.hs.

Is the project you're working with available online?

https://github.com/Per48edjes/Simple-Haskell-Handbook

@Per48edjes
Copy link
Author

More fun facts: running :UfoDisableFold (vs. :UfoDisable from earlier) also seems sufficient to stop the error.

@Per48edjes
Copy link
Author

Minimal config and nvim-ufo + nvim-lspconfig (using the LSP as the main provider) - without haskell-tools (you will need to call require('lspconfig').hls.setup {} in the minimal config, and disable the haskell-tools plugin).

Error persists under this scenario!

Minimal config and nvim-ufo + haskell-tools (using the LSP as the main provider) - without lspconfig

Wasn't 100% sure how to set this up in the minimal config, but here is what I ended up with.

...and the error still persists in this case, too!

Thus far, my working hypothesis is it has something to do with nvim-ufo & haskell-language-server interaction; perhaps, my nvim-ufo config is borked? I'm using the out-of-box config from AstroNvim for that.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Yup, that's my current hypothesis, too.

One thing I just noticed from your :checkhealth call:

Checking external dependencies ~

  • OK haskell-language-server: found haskell-language-server version: 2.2.0.0 (GHC: 8.10.7) (PATH: /Users/rdayabhai/.local/share/nvim/mason/packages/haskell-language-server/lib/haskell-language-server-2.2.0.0/bin/haskell-language-server-wrapper)

You're using GHC 8.10.7 - I'm on GHC 9.4.6. Maybe that's why I can't reproduce it. I'm trying to build hls from source with GHC 8.10.7 now...

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

...and it failed.

How do you install hls? I guess AstoNVim uses a prebuilt binary downloaded by mason.nvim?
Or are you using HomeBrew?

@Per48edjes
Copy link
Author

How do you install hls? I guess AstoNVim uses a prebuilt binary downloaded by mason.nvim?

Yep, mason.nvim to manage HLS that gets called by NeoVim. Otherwise, I'm using GHCup to manage the Haskell toolchain.

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Ah, ghcup (which mason uses, too) is broken on NixOS, so I can't try that.
And the log you posted says it was using GHC 9.2.8, so it's unlikely to be the GHC version either.

I'll see if I can find something in the ufo config. But I fear I'm starting to run out of ideas...

@Per48edjes
Copy link
Author

You and me both, brother. 🥲 One thing (once I'm back at my desk) I want to try is a full reinstall of managed packages (via Mason)...that or some sort of "rollback" to a previous state of affairs (clearly, not a fully baked idea 😄 )? 🤞🏽

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Nope, I couldn't reproduce it with the AstroNVim config either.

But this looks interesting:

provider_selector = function(_, filetype, buftype)
        local function handleFallbackException(bufnr, err, providerName)
          if type(err) == "string" and err:match "UfoFallbackException" then
            return require("ufo").getFolds(bufnr, providerName)
          else
            return require("promise").reject(err)
          end
        end

        return (filetype == "" or buftype == "nofile") and "indent" -- only use indent until a file is opened
          or function(bufnr)
            return require("ufo")
              .getFolds(bufnr, "lsp")
              :catch(function(err) return handleFallbackException(bufnr, err, "treesitter") end)
              :catch(function(err) return handleFallbackException(bufnr, err, "indent") end)
          end
      end,

Specifically, the line

return require("promise").reject(err)

I think that could be where the error is thrown in AstroNVim, so as a workaround, you could try replacing that line with something like

return require("ufo").getFolds(bufnr, 'treesitter')

or

return require("ufo").getFolds(bufnr, 'indent')

If that works, then the next step would be to figure out why nvim-ufo isn't throwing a UfoFallbackException...

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 13, 2023

Huzzah! I may have just found the bug in nvim-ufo.

In nvim-ufo:

                if code == errorCodes.RequestCancelled or code == errorCodes.ContentModified then
                    reject('UfoFallbackException')
                else
                    reject(err)
                end

In haskell-language-server:

toErrorCode (PluginRuleFailed _)       = InL LSPErrorCodes_RequestFailed

and

      PluginRuleFailed rule       -> "Rule Failed:"        <+> pretty rule

@Per48edjes
Copy link
Author

Per48edjes commented Sep 14, 2023

😲 👏🏽 🙌🏽 THIS WORKED!!! 🎉 🎆 🍾

Seriously, thank you @mrcjkb , SO much for jumping down this rabbit hole with me and doggedly chasing down this bug. 🙏🏽 I was about to blow up my entire set-up and start from nil... 😬

@mrcjkb
Copy link
Owner

mrcjkb commented Sep 14, 2023

🎉🎉🎉

No problem 😅
Thanks to you too. I would have probably encountered it myself, eventually.

@mrcjkb mrcjkb closed this as completed Sep 14, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants