haskell / haskell/haskell-language-server

Use `ExceptT` instead of `State Bool` in the case-split plugin implementation

Open
#5,069 0 comments 0 reactions 0 assignees View on GitHub
component: hls-case-split-plugin Hackathon type: enhancement
Dominant language
Haskell
Stars
3k
Forks
455
Avg merge
3d 21h
Merged PRs (30d)
13

Description

This is an implementation detail, but @MangoIV says it _could_ improve performance (I suppose in large ASTs?).

Worst case scenario, we don't lose anything.

As regards readability, I don't know.

Anyway, worth experimenting with this in spare time.

Originally considered during [my GSoC 2026 project](https://gist.github.com/Aster89/69a57c364ec2d0cc89f474cc3d194371#future-work--stretch-goals).

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by locating the case-split plugin implementation and its use of State Bool. Compare an ExceptT-based experiment against the existing behavior, then establish whether large-AST performance improves without regressions; the issue does not name files or tests.

Written by the indexing model from the issue text.

Assessment

Tech stack
haskell
Domain
devtools
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Active
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.