justin garcia
banner
purefunctor.me
justin garcia
@purefunctor.me
purescript @ oxfordabstracts.com
core team @ purescript.org
organiser @ functional.org.ph

I work on web, compilers, and type systems using FP

🇵🇭 he/him
July 11, 2025 at 9:41 AM
I love when abstractions fall right into place
May 18, 2025 at 11:15 AM
Now I gotta figure out how to make the build system parallel
May 17, 2025 at 12:21 PM
TIL that Option<NonZero<u32>> has the same size as NonZero<u32> and I'm wondering if it's a worthwhile optimisation to make for flattened ASTs?

At 1 billion nodes yeah it'll save 12 GB but at a million 12 MB doesn't matter as much for modern hardware.
May 16, 2025 at 9:19 AM
The purescript-analyzer currently hovers around 1.0~1.3 GiB of memory usage for 871k (!!!) lines of PureScript. A good chunk of the memory being allocated comes from the AST, specifically the mechanism it currently uses for flattening the representation.
May 15, 2025 at 5:10 PM
been a hot minute since I cooked this good
April 2, 2025 at 6:15 PM
types when you write _help / ?help:
April 2, 2025 at 12:57 PM
erm
March 11, 2025 at 11:48 AM
Instance heads are annoying to lower
March 2, 2025 at 6:41 AM
Note to self: make sure the binary you're benchmarking bails if it doesn't find the files it's supposed to be using
February 20, 2025 at 6:53 PM
GHC... seems to generate them?
February 18, 2025 at 5:04 PM
I was just thinking about how skolemisation would fit in a constraint-generating type checker and I was wondering if it makes sense to use implication constraints for them.
February 18, 2025 at 4:59 PM
Why do banks make such terrible software? Like I get hanging on to archaic systems but stuff like this is inexcusable
February 7, 2025 at 4:58 PM
What'd I say about tiny interactions again
February 5, 2025 at 8:09 PM
one of the takes of all time
February 3, 2025 at 10:41 PM
I love let-else
February 1, 2025 at 10:58 AM
I mean... parsing the entire package set seems to finish around 1.3ms
January 28, 2025 at 12:42 PM
Any neovim plugin recommendations? The last time I used it extensively was 5 years ago
January 26, 2025 at 12:23 PM
I'm just discovering now that a few months ago I wrote a build system that incidentally functions a lot like shakebuild.com

I did know about the Build Systems a la Carte paper but it wasn't until today that I actually gave it a proper read-through (bad habit, working on it)
January 23, 2025 at 5:36 PM
I thought this felt familiar—isn't this the same mechanism that salsa-rs uses for dependency tracking?
January 23, 2025 at 7:54 AM
absolute cinema
January 23, 2025 at 6:53 AM
I live for tiny interactions like these
January 18, 2025 at 11:10 AM
It's not often that I use function pointers to shared behaviour in Rust but when I do it ends up pretty cool.
January 18, 2025 at 10:56 AM
About time I did myself a favor!
January 13, 2025 at 6:43 PM
I feel like compilers are good benchmark "thing to build" to determine what makes a language great—case in point, syntactic macros to generate a thousand lines of boilerplate code.

Also throw in ADTs and exhaustive pattern matching in there since this macro creates those too.
January 5, 2025 at 6:01 PM