# Learn

**URL:** https://discourse.haskell.org/c/learn/5.md?page=3

[Latest](https://discourse.haskell.org/latest.md) · [Categories](https://discourse.haskell.org/categories.md) · [Tags](https://discourse.haskell.org/tags.md)

**Page:** 4

---

## [Would keyword arguments conflict with currying in Haskell?](https://discourse.haskell.org/t/would-keyword-arguments-conflict-with-currying-in-haskell/13906)

<div class="topic-metadata">

**Author:** [@Shantanu-sg-01](https://discourse.haskell.org/u/Shantanu-sg-01)\
**Replies:** 8\
**Last updated:** [April 12, 2026, 4:15pm UTC](https://discourse.haskell.org/t/would-keyword-arguments-conflict-with-currying-in-haskell/13906 "2026-04-12T16:15:01Z")

</div>

Hi all, I was thinking about keyword arguments (like in Python) and why Haskell doesn’t support them. It seems that keyword arguments could improve readability at the call site, especially when multiple parameters have…

---

## [Shader Pipeline: PrimShader and Random Face Colours](https://discourse.haskell.org/t/shader-pipeline-primshader-and-random-face-colours/13904)

<div class="topic-metadata">

**Author:** [@tobz619](https://discourse.haskell.org/u/tobz619)\
**Replies:** 3\
**Last updated:** [April 7, 2026, 10:44pm UTC](https://discourse.haskell.org/t/shader-pipeline-primshader-and-random-face-colours/13904 "2026-04-07T22:44:27Z")

</div>

While building my toy rasterizer I was thinking that I could implement various stages like so: type VertexShader = ViewSpace -\> ViewSpace type PrimShader = forall f. Functor f =\> f ViewSpace -\> f ViewSpace type MeshShad…

---

## [Type equality in GADT/TypeFamily context](https://discourse.haskell.org/t/type-equality-in-gadt-typefamily-context/13876)

<div class="topic-metadata">

**Author:** [@dyaitskov](https://discourse.haskell.org/u/dyaitskov)\
**Replies:** 7\
**Last updated:** [April 5, 2026, 1:28am UTC](https://discourse.haskell.org/t/type-equality-in-gadt-typefamily-context/13876 "2026-04-05T01:28:16Z")

</div>

Hi, How to make GHC to type-check the last branch of pop ? GHC understands that x == c in Just Refl case, but it cannon unify default branch with last type family case. {-# LANGUAGE GADTs #-} {-# LANGUAGE RankNTypes …

---

## [Users of Stack and Nix: seeking feeback on sensible defaults](https://discourse.haskell.org/t/users-of-stack-and-nix-seeking-feeback-on-sensible-defaults/13826)

<div class="topic-metadata">

**Author:** [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Replies:** 3\
**Last updated:** [March 28, 2026, 4:51am UTC](https://discourse.haskell.org/t/users-of-stack-and-nix-seeking-feeback-on-sensible-defaults/13826 "2026-03-28T04:51:01Z")

</div>

Users of both Stack and the Nix package manager, I am seeking feedback on sensible defaults for Stack, as follows: On the NixOS operating system, Stack’s Nix integration is currently enabled by default. Is that still …

---

## [Functional Programming Practice Platform](https://discourse.haskell.org/t/functional-programming-practice-platform/13686)

<div class="topic-metadata">

**Author:** [@augyg](https://discourse.haskell.org/u/augyg)\
**Replies:** 1\
**Last updated:** [March 27, 2026, 7:48pm UTC](https://discourse.haskell.org/t/functional-programming-practice-platform/13686 "2026-03-27T19:48:31Z")

</div>

Hello, this week I am excited to be deploying a fun project I’ve been working on to the Ace platform. It is essentially hackerrank or an exercism except that the inputs we have are not limited to simple values but instea…

---

## [Parse literate Haskell file](https://discourse.haskell.org/t/parse-literate-haskell-file/13839)

<div class="topic-metadata">

**Author:** [@marcosh](https://discourse.haskell.org/u/marcosh)\
**Replies:** 1\
**Last updated:** [March 24, 2026, 12:22am UTC](https://discourse.haskell.org/t/parse-literate-haskell-file/13839 "2026-03-24T00:22:08Z")

</div>

tldr: is it possible to parse a literate Haskell file with parseModuleEpAnnsWithCppInternal? longer question: I’m trying to contribute to doctest-parallel so that it is able to handle literate Haskell files. Currently …

---

## [The fastest way to feed ghc type errors to LLM](https://discourse.haskell.org/t/the-fastest-way-to-feed-ghc-type-errors-to-llm/13827)

<div class="topic-metadata">

**Author:** [@jhrcek](https://discourse.haskell.org/u/jhrcek)\
**Replies:** 12\
**Last updated:** [March 21, 2026, 9:36am UTC](https://discourse.haskell.org/t/the-fastest-way-to-feed-ghc-type-errors-to-llm/13827 "2026-03-21T09:36:56Z")

</div>

I see couple of Haskellers around here embracing agentic coding especially since the jump of capabilities we got in claude 4.5/6 releases. I’ve also been experimenting with claude-code recently and saw some sparks of gre…

---

## [How to practically enable \`-Wmissing-import-lists\`?](https://discourse.haskell.org/t/how-to-practically-enable-wmissing-import-lists/13810)

<div class="topic-metadata">

**Author:** [@clinton](https://discourse.haskell.org/u/clinton)\
**Replies:** 6\
**Last updated:** [March 16, 2026, 9:48pm UTC](https://discourse.haskell.org/t/how-to-practically-enable-wmissing-import-lists/13810 "2026-03-16T21:48:09Z")

</div>

Edit: On further thought I think I might be able to achieve the below using hlint importStyle directives, but that’s WIP. Will post results here. But I will leave the original post if people have a simpler way of workin…

---

## [Fancy Haskell advice: Add recursion to a strongly-typed stack machine](https://discourse.haskell.org/t/fancy-haskell-advice-add-recursion-to-a-strongly-typed-stack-machine/13607)

<div class="topic-metadata">

**Author:** [@AriFordsham](https://discourse.haskell.org/u/AriFordsham)\
**Replies:** 7\
**Last updated:** [March 12, 2026, 11:18pm UTC](https://discourse.haskell.org/t/fancy-haskell-advice-add-recursion-to-a-strongly-typed-stack-machine/13607 "2026-03-12T23:18:12Z")

</div>

Hi all, I’ve built a small stack machine that uses the type system to guarantee no stack underflow: data FreeCat k a b where End :: FreeCat k a a (:\*) :: k a b -\> FreeCat k b c -\> FreeCat k a c infixr 5 :\* (\<:\>) …

---

## [Synthesizing \`RuntimeRep\`-indexed type class instances in a GHC plugin to simulate monomorphization](https://discourse.haskell.org/t/synthesizing-runtimerep-indexed-type-class-instances-in-a-ghc-plugin-to-simulate-monomorphization/13774)

<div class="topic-metadata">

**Author:** [@Ro5bert](https://discourse.haskell.org/u/Ro5bert)\
**Replies:** 5\
**Last updated:** [March 12, 2026, 10:15am UTC](https://discourse.haskell.org/t/synthesizing-runtimerep-indexed-type-class-instances-in-a-ghc-plugin-to-simulate-monomorphization/13774 "2026-03-12T10:15:36Z")

</div>

Motiviation GHC Haskell has a nice runtime representation system, centered around RuntimeRep and TYPE :: RuntimeRep -\> \* in GHC.Exts, that enables representation-polymorphic abstractions. Unfortunately, this control over…

---

## [Compilation error using MicroHS (main.c eval.c)](https://discourse.haskell.org/t/compilation-error-using-microhs-main-c-eval-c/13777)

<div class="topic-metadata">

**Author:** [@feature-not-a-bug](https://discourse.haskell.org/u/feature-not-a-bug)\
**Replies:** 3\
**Last updated:** [March 10, 2026, 11:18pm UTC](https://discourse.haskell.org/t/compilation-error-using-microhs-main-c-eval-c/13777 "2026-03-10T23:18:06Z")

</div>

I’ve dipped my toes into MicroHs and I’m running into a compilation error when I try to invoke it from an external directory. The Haskell code is simply the default hello world from a cabal init ( ../MicroHs/bin/mhs -…

---

## [Fork \`basement\`? As \`baseplate\`?](https://discourse.haskell.org/t/fork-basement-as-baseplate/12415)

<div class="topic-metadata">

**Author:** [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Replies:** 82\
**Last updated:** [March 9, 2026, 5:20am UTC](https://discourse.haskell.org/t/fork-basement-as-baseplate/12415 "2026-03-09T05:20:29Z")

</div>

This is a similar story to the memory package (see: Fork \`memory\`? As \`memoria\` or \`Memory\`?; and Improving \`memory\` with better abstractions. basement is a direct dependency of memory). That is, I understand that th…

---

## [How to profile a GHC Plugin?](https://discourse.haskell.org/t/how-to-profile-a-ghc-plugin/13745)

<div class="topic-metadata">

**Author:** [@Turtle](https://discourse.haskell.org/u/Turtle)\
**Replies:** 11\
**Last updated:** [March 5, 2026, 8:19pm UTC](https://discourse.haskell.org/t/how-to-profile-a-ghc-plugin/13745 "2026-03-05T20:19:39Z")

</div>

Context I have built a GHC Plugin to symbolically execute Haskell Core, which I want to optimize. Profiling the plugin seems like a good starting point, but I’m having issues with this as the plugin is run through GHC. I…

---

## [GHC community update Jan/Feb 2026](https://discourse.haskell.org/t/ghc-community-update-jan-feb-2026/13757)

<div class="topic-metadata">

**Author:** [@MangoIV](https://discourse.haskell.org/u/MangoIV)\
**Replies:** 1\
**Last updated:** [March 4, 2026, 7:46am UTC](https://discourse.haskell.org/t/ghc-community-update-jan-feb-2026/13757 "2026-03-04T07:46:21Z")

</div>

The GHC community update consists of three sections: Call for contributions: The GHC team asks for contributions - these range from issues that are simple and fun to solve to issues that require an expert pair of eyes…

---

## [Fork \`memory\`? As \`memoria\`?](https://discourse.haskell.org/t/fork-memory-as-memoria/11777)

<div class="topic-metadata">

**Author:** [@mpilgrem](https://discourse.haskell.org/u/mpilgrem)\
**Replies:** 24\
**Last updated:** [March 1, 2026, 8:02pm UTC](https://discourse.haskell.org/t/fork-memory-as-memoria/11777 "2026-03-01T20:02:15Z")

</div>

I understand that there is a need to fork the popular memory package, from version 0.18.0. memory is a dependency of Stack and I have been thinking: “Perhaps I could step up and do that?” However, I have hesitated, thin…

---

## [GADTs preventing me from making an amazing parser library](https://discourse.haskell.org/t/gadts-preventing-me-from-making-an-amazing-parser-library/13752)

<div class="topic-metadata">

**Author:** [@NewDisc](https://discourse.haskell.org/u/NewDisc)\
**Replies:** 8\
**Last updated:** [March 1, 2026, 5:17pm UTC](https://discourse.haskell.org/t/gadts-preventing-me-from-making-an-amazing-parser-library/13752 "2026-03-01T17:17:04Z")

</div>

I can’t figure out how to fix this. I would have thought it could tell that both the pattern from the Call constructor and the pattern from the Lambda constructor were true at the same time since one is inside the other.…

---

## [Can backpack solve the 'basement' problem?](https://discourse.haskell.org/t/can-backpack-solve-the-basement-problem/13749)

<div class="topic-metadata">

**Author:** [@mihaimaruseac](https://discourse.haskell.org/u/mihaimaruseac)\
**Replies:** 8\
**Last updated:** [March 1, 2026, 2:16pm UTC](https://discourse.haskell.org/t/can-backpack-solve-the-basement-problem/13749 "2026-03-01T14:16:19Z")

</div>

It was my understanding that backpack could solve this. Unfortunately, from what I know, backpack is not yet widely supported. And I might be wrong about this.

---

## [Survey and Opinions: Backtracking in Parsers](https://discourse.haskell.org/t/survey-and-opinions-backtracking-in-parsers/13249)

<div class="topic-metadata">

**Author:** [@VegOwOtenks](https://discourse.haskell.org/u/VegOwOtenks)\
**Replies:** 13\
**Last updated:** [February 27, 2026, 7:02pm UTC](https://discourse.haskell.org/t/survey-and-opinions-backtracking-in-parsers/13249 "2026-02-27T19:02:26Z")

</div>

Introduction I am currently building an introspectable parser combinator library. This has been a goal of mine for a long time, but only recently did the idea make sense in my head, after I read Exploring Arrows for seq…

---

## [Using RGB types to gain intuition about Type Level Programming and Generics](https://discourse.haskell.org/t/using-rgb-types-to-gain-intuition-about-type-level-programming-and-generics/13651)

<div class="topic-metadata">

**Author:** [@tobz619](https://discourse.haskell.org/u/tobz619)\
**Replies:** 18\
**Last updated:** [February 27, 2026, 6:47pm UTC](https://discourse.haskell.org/t/using-rgb-types-to-gain-intuition-about-type-level-programming-and-generics/13651 "2026-02-27T18:47:07Z")

</div>

Disclaimer!!! This has been done with the help of Gemini: Lord knows I can’t come up with the Type level stuff yet on my own. The words typed in this post are all my own; most of the Haskell code has been generated by Ge…

---

## [Impact of type families on type inference](https://discourse.haskell.org/t/impact-of-type-families-on-type-inference/13710)

<div class="topic-metadata">

**Author:** [@enlico](https://discourse.haskell.org/u/enlico)\
**Replies:** 1\
**Last updated:** [February 23, 2026, 4:36am UTC](https://discourse.haskell.org/t/impact-of-type-families-on-type-inference/13710 "2026-02-23T04:36:10Z")

</div>

I’m reading Higher-order Type-level Programming in Haskell, and I have some questions. This is one. Here’s a paragraph from page 3, §2.3: 2.3.1 Inference. Consider the call (f x), where f :: Monad m =\> m a -\> m a, a…

---

## [Oddities with the haskell language server](https://discourse.haskell.org/t/oddities-with-the-haskell-language-server/13718)

<div class="topic-metadata">

**Author:** [@lunipaws](https://discourse.haskell.org/u/lunipaws)\
**Replies:** 1\
**Last updated:** [February 22, 2026, 11:26pm UTC](https://discourse.haskell.org/t/oddities-with-the-haskell-language-server/13718 "2026-02-22T23:26:15Z")

</div>

Currently I am using Emacs as my text editor/IDE of choice. For the past few months I haven’t really been using the Haskell LSP but I decided that, as I start using Haskell for bigger projects I should probably setup a H…

---

## [Generics and strictness](https://discourse.haskell.org/t/generics-and-strictness/13693)

<div class="topic-metadata">

**Author:** [@olf](https://discourse.haskell.org/u/olf)\
**Replies:** 2\
**Last updated:** [February 20, 2026, 10:57am UTC](https://discourse.haskell.org/t/generics-and-strictness/13693 "2026-02-20T10:57:10Z")

</div>

While the Generic representation of a data type expresses strictness of constructors/selectors in its Meta data, it appears that the constructors of the representation itself are always lazy, e.g. the two constructors of…

---

## [Minimal processing of continued fractions](https://discourse.haskell.org/t/minimal-processing-of-continued-fractions/13689)

<div class="topic-metadata">

**Author:** [@TheoH](https://discourse.haskell.org/u/TheoH)\
**Replies:** 11\
**Last updated:** [February 19, 2026, 8:12pm UTC](https://discourse.haskell.org/t/minimal-processing-of-continued-fractions/13689 "2026-02-19T20:12:57Z")

</div>

I’m a learner and, as an exercise, I’m trying to write some code to work with finite and infinite continued fractions. I have some code that is OK and seems to be correct: it emits a digit only when it’s certain, and pro…

---

## [Vscode couldn't get the latest haskell-language-server releases from GitHub](https://discourse.haskell.org/t/vscode-couldnt-get-the-latest-haskell-language-server-releases-from-github/13690)

<div class="topic-metadata">

**Author:** [@iSaber](https://discourse.haskell.org/u/iSaber)\
**Replies:** 1\
**Last updated:** [February 15, 2026, 1:44pm UTC](https://discourse.haskell.org/t/vscode-couldnt-get-the-latest-haskell-language-server-releases-from-github/13690 "2026-02-15T13:44:45Z")

</div>

I install haskell on my wsl 2, and I do install hls saber@Saber:~/haskell$ ghcup install hls\[ Info \] downloading: https://raw.githubusercontent.com/haskell/ghcup-metadata/master/ghcup-0.0.9.yaml as file /home/saber/.gh…

---

## [How to get Haddock for Hackage to generate correctly?](https://discourse.haskell.org/t/how-to-get-haddock-for-hackage-to-generate-correctly/13649)

<div class="topic-metadata">

**Author:** [@tomjaguarpaw](https://discourse.haskell.org/u/tomjaguarpaw)\
**Replies:** 3\
**Last updated:** [February 4, 2026, 12:29pm UTC](https://discourse.haskell.org/t/how-to-get-haddock-for-hackage-to-generate-correctly/13649 "2026-02-04T12:29:23Z")

</div>

There are a few resources I’ve found that point out how to generate Haddocks for Hackage: How to upload haddocks to Hackage? · Issue #5821 · haskell/cabal · GitHub Uploading packages and package candidates | Hackage \[R…

---

## [How to not use explicit directories in cabal config](https://discourse.haskell.org/t/how-to-not-use-explicit-directories-in-cabal-config/13643)

<div class="topic-metadata">

**Author:** [@Zam7am](https://discourse.haskell.org/u/Zam7am)\
**Replies:** 1\
**Last updated:** [February 3, 2026, 3:48pm UTC](https://discourse.haskell.org/t/how-to-not-use-explicit-directories-in-cabal-config/13643 "2026-02-03T15:48:29Z")

</div>

I am trying to create a cabal config file that does not use the explicit absolute path (“/home/…”) and instead something more portable like “~” or “$HOME”. However, it seems like that cabal does not recognise these as th…

---

## [Can orphan instances cause bugs?](https://discourse.haskell.org/t/can-orphan-instances-cause-bugs/13637)

<div class="topic-metadata">

**Author:** [@jaror](https://discourse.haskell.org/u/jaror)\
**Replies:** 4\
**Last updated:** [February 1, 2026, 2:54pm UTC](https://discourse.haskell.org/t/can-orphan-instances-cause-bugs/13637 "2026-02-01T14:54:46Z")

</div>

The topic of orphan instances came up again recently. The usual complaint against orphan instances seems to be that they break the global uniqueness property of type class instances: Global Uniqueness Property. A type…

---

## [Transformer version of the ST monad?](https://discourse.haskell.org/t/transformer-version-of-the-st-monad/13623)

<div class="topic-metadata">

**Author:** [@Agnishom](https://discourse.haskell.org/u/Agnishom)\
**Replies:** 10\
**Last updated:** [January 30, 2026, 7:22am UTC](https://discourse.haskell.org/t/transformer-version-of-the-st-monad/13623 "2026-01-30T07:22:44Z")

</div>

I want to stack the ST Monad together with other conveniences like MonadError, and so on. It seems that there are packages like STT, but they are widely used, or their use is discouraged. What is the best way to write …

---

## [Caching for incremental changes (including \`ghc-nix\`)](https://discourse.haskell.org/t/caching-for-incremental-changes-including-ghc-nix/13606)

<div class="topic-metadata">

**Author:** [@clinton](https://discourse.haskell.org/u/clinton)\
**Replies:** 5\
**Last updated:** [January 30, 2026, 3:31am UTC](https://discourse.haskell.org/t/caching-for-incremental-changes-including-ghc-nix/13606 "2026-01-30T03:31:33Z")

</div>

At my previous Haskell role, we had a workflow where our CI/Production builds were using Nix (using cabal2nix), but the issue is that Nix rebuilds things on the package level, so if one file in a package changes it must …

---

## [Word diffing libraries?](https://discourse.haskell.org/t/word-diffing-libraries/13617)

<div class="topic-metadata">

**Author:** [@unhammer](https://discourse.haskell.org/u/unhammer)\
**Replies:** 0\
**Last updated:** [January 29, 2026, 2:24pm UTC](https://discourse.haskell.org/t/word-diffing-libraries/13617 "2026-01-29T14:24:04Z")

</div>

Are there any existing libraries that do word-diffing? Like e.g. GitHub - kpdecker/jsdiff: A javascript text differencing implementation. does. Currently I’m just manually tokenizing the two input texts (into sequences …

[Previous page](https://discourse.haskell.org/c/learn/5.md?page=2)

[Next page](https://discourse.haskell.org/c/learn/5.md?page=4)
