Basile Henry
basilehenry.bsky.social
Basile Henry
@basilehenry.bsky.social
I like making games, learning about type theory and hacking on hardware. I'm also passionate about food and coffee! ☕ he/him
Lots of GADTs when writing Clash Haskell 😭

clash-lang.org
Home
clash-lang.org
December 17, 2025 at 8:38 AM
"Linux in the Kernel" 👀 How dare they! 😅
December 10, 2025 at 8:25 AM
That is a pretty bad error message 😅 I assumed the Generic instance was a given and was already reaching for orphan instances to explain the lack of import
bsky.app/profile/basi...
Maybe you're also supposed to derive Generic for that type in the shame module (so it's not an orphan instance), and that would force you to add the import 🤔
December 9, 2025 at 1:52 PM
Maybe you're also supposed to derive Generic for that type in the shame module (so it's not an orphan instance), and that would force you to add the import 🤔
December 9, 2025 at 12:30 AM
Ouch 😬 That would make sense to me for TemplateHaskell generated code, but for this type of instance deriving/default impl it feels like the extension should manage its own imports 😅
December 9, 2025 at 12:20 AM
M1 not in scope is weird 🤔 missing a language extension?
December 8, 2025 at 9:44 PM
I don't know how much AI they ended up using, but watching some of their dev talks a while ago they had some really impressive procedural generation using advanced ML techniques (i.e. AI), it really didn't strike me (at that time) like the plagiarism machine you hear about in more recent game dev 🤷‍♂️
November 30, 2025 at 5:01 PM
Nice example! 😊
November 24, 2025 at 4:30 PM
I mean yeah theoretically 😅 It's a practical approach, and I'm struggling to find ways to exploit it to create a function that would do radically different things for different types 🤔
There might be some tricks where you detect the type using broken `==` for NaN, but that's also the case in Haskell
November 24, 2025 at 3:49 PM
I think it might depend if you have "magic" (no constraints) type classes à la Elm for things like `==`, `+`, or `>=` 🤔
November 24, 2025 at 2:31 PM
That's probably the most reliable method (especially since the source path could be generated from nix)!
I guess I'm not trusting my AI enough to do the run build step for me yet 😅
November 18, 2025 at 3:22 PM
That's much better! 😊 What's the workflow like? Does it get the hash locally?
November 18, 2025 at 3:15 PM
It'd be impressive if AI could guess the hashes 😅
November 18, 2025 at 3:10 PM
Maybe the lock file could keep the previous version info 🤔 Then for this specific issue, I don't think you need a full compilation of the previous version, only a way to track the impls back to the previous version (if they exist)
October 21, 2025 at 11:21 AM
It feels like the type of issue that could be fixed automatically (annotate using the impl pre-upgrade) 🤔
October 21, 2025 at 10:59 AM
How else would you know that the bread is Not a a Number 😅
May 27, 2025 at 10:19 AM
O(n^2) for a naive compiler, O(1) for a decent compiler even with non-const n. With that inner loop's body, a good compiler could rewrite the snippet:
total = n*n
Although this assumes `n` is positive and has to consider `total`'s overflow semantics, which may not be reasonable in some languages 😅
May 19, 2025 at 6:27 AM
Now we need a language where escaping a newline character is an alternative way to input the 'n' character 😈
May 17, 2025 at 8:26 PM
Wordle 1,421 3/6

⬜⬜🟩🟨🟨
⬜⬜⬜🟩🟨
🟩🟩🟩🟩🟩

Got lucky with my 2 starting words 😊
May 10, 2025 at 2:24 PM
Maybe you're supposed to do a Copenhagen style left turn 🤔
May 10, 2025 at 2:20 PM
I think it's mostly cursed 😅
NamedFieldPuns is the more practical option in my opinion
March 20, 2025 at 7:24 AM
Make invalid states representable!
March 18, 2025 at 7:32 PM
Thanks for the blog post! It is difficult to find nuance nowadays, so your insight and knowledge is both welcome and valuable 😊
February 8, 2025 at 4:17 PM
Does GHC actually care about the location of the file? Isn't it a restriction of cabal that they need to match?
January 6, 2025 at 6:48 PM
Often modern vinyls come with a code to download the mp3s, so if you buy the vinyl first you don't need to buy the mp3s 😄
December 25, 2024 at 9:08 PM