Alice ✨
banner
welltypedwit.ch
Alice ✨
@welltypedwit.ch
There’s no sense crying over every mistake. You just keep on trying ’til you run out of cake
- GLaDOS

https://welltypedwit.ch
"hmm, i don't have a way yet to look up the representation of a data constructor from core. i wonder how i did that during core generation"
December 26, 2025 at 9:48 PM
"huh, i wonder what kind of code ghc's llvm backend generates here"

ah
December 26, 2025 at 12:24 AM
i really feel like gadts are a local maximum (if even that)

i'm not entirely sure what i would prefer instead but they're just such a messy indirect combination of a few very different features
maybe decoupling them would make them less dangerous so you don't immediately code yourself into a corner
December 25, 2025 at 5:13 AM
for how much they talk about it functional programmers really don't understand hindley milner very well
December 25, 2025 at 5:02 AM
i'm really not convinced that having more than one compiler is automatically good for a language
December 23, 2025 at 4:12 PM
til that HLS shows type definitions inline if you hover over them while holding ctrl! this is so nice omg since when does it do that?
December 23, 2025 at 12:35 AM
can programmers please behave like adults for once
December 22, 2025 at 5:36 PM
does anyone know any other examples of using higher rank types for regions/lifetimes like with runST that aren't ST or bluefin? especially ones related to allocating something off-heap or similar (but anything really. doesn't even have to be in haskell)
December 21, 2025 at 8:28 PM
Reposted by Alice ✨
"The Subtle Footgun of TVar (Map _ _)" by Matt Parsons

www.parsonsmatt.org/2025/12/17/t...

#Haskell
The Subtle Footgun of TVar (Map _ _)
How coarse-grained STM containers can livelock under load
www.parsonsmatt.org
December 18, 2025 at 9:39 PM
everyone already has an intuition for the pipe operator! it's just like unix pipes except for how it's not actually like unix pipes at all, has different semantics and serves a completely different purpose
December 18, 2025 at 12:34 AM
okay, imagine this: ocaml with just basic data types, required mli files (and a type checker that uses the types from signatures), the same type syntax in signatures and implementations, only locally abstract types (no 'a or _ silliness)...
December 17, 2025 at 4:07 AM
i genuinely think ocaml would be a dramatically better language if most of its advanced type features did not exist
December 17, 2025 at 3:28 AM
i just love it when i write down the type ocaml infers for a let binding and get a type error because `constraint` is just so incredibly well thought out omg
December 17, 2025 at 3:00 AM
i hate eio's api

great implementation, horrible api
December 17, 2025 at 2:43 AM
use this ONE WEIRD TRICK to implement a runtime feature by only changing the type checker (compilers HATE her)

(you just need to have implemented it in the runtime already at least 2 years ago but have forgotten to implement the two lines of type checker logic oops)
December 17, 2025 at 2:26 AM
> printf "a\nb\nc" | wc -l
2

welp
December 17, 2025 at 2:12 AM
why do you need a separate ocaml compiler for flambda anyway? couldn't you just have one that supports both backends?
December 17, 2025 at 1:47 AM
i understand that minecraft is not exactly the most realistic game but like, how do you spend the same amount of wood on a single shelf as on 8 cubic meters of planks
December 16, 2025 at 11:49 PM
Reposted by Alice ✨
Extremely disappointed in the Rust community on this one. Changing your name online should be a very understandable thing to want to do in a trans and neurodivergent inclusive community. For example, having a publicly visible link between your name and deadname can cause real harm. 1/7
December 16, 2025 at 10:52 PM
it's interesting how often the `open (struct ... end)` trick comes up on the ocaml discourse considering that it's totally broken and unsound lol
December 16, 2025 at 5:16 AM
i would like a 4-list-colorable apple please. they have played us for absolute fools
December 15, 2025 at 3:07 AM
i'm feeling very validated in only monomorphizing on representations by default in vega right now.
it's actually really not great that newtypes have a compile time and (more complicated) runtime cost in rust!
thanks! okay this took me a while (in part because woofwoof didn't build. i opened an issue) but i wrote a script that replaces every type with its representation and that took it down from 50 to 33 unique instantiations (38 if we don't include that String has the same representation as Vec)
count-representation-instantiations.pls
GitHub Gist: instantly share code, notes, and snippets.
gist.github.com
December 14, 2025 at 11:10 PM
man, <REDACTED> might be the only programming language i'm physically unable to take seriously (and like, i know about v)
like, i'm trying but literally everything i learn about it is just so dumb omg
December 13, 2025 at 11:09 AM
Reposted by Alice ✨
your next game should be written in #haskell and represent life points and money and other state in peano numeral. this makes your game cheat engine proof cause who the heck knows what a haskell heap looks like
December 12, 2025 at 11:54 PM