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
Pinned
I quit using LLMs to write code that I would have written in the first place
purefunctor.me/blog/i-quit-...
I quit using LLMs
to write code that I would have written in the first place
purefunctor.me
A while back, irked by the sheer misrepresentation of the performance of recursion, I wrote a soft introduction to continuation-passing style and tail-call optimisation.

Never really shared it anywhere but might as well:
Fear Not Recursion
A soft introduction to continuation-passing style and tail-call optimisation.
purefunctor.me
July 27, 2025 at 12:29 PM
Tidal Memory Exo by Iglooghost on Apple Music
Album · 2024 · 13 Songs
music.apple.com
July 11, 2025 at 9:38 AM
Reposted by justin garcia
i think it's mostly not actually about syntax, it's just that the people saying that don't know how to express their actual concerns.
e.g. with rust it's usually not about the syntax as much as its about the complexity of the language even with things that are much simpler in other languages
June 9, 2025 at 2:50 PM
Every so often I see comments about "weird" syntax (typically towards Rust/Haskell/etc.) being a reason for people to hate a language and that just feels like a massive skill issue
June 9, 2025 at 1:47 PM
The PureScript Analyzer now uses verifying step traces for its build system, the same tracing mechanism used by Shake!

As a result, caching for downstream phases in the compiler is much more aggressive and should reduce redundant computations from insignificant edits

github.com/purefunctor/...
Improve verifying step traces in build system by purefunctor · Pull Request #29 · purefunctor/purescript-analyzer
This greatly improves the implementation of verifying step traces in the build system by using equality to make sure that the changed timestamps aren't updated as often as they need to be.
github.com
May 21, 2025 at 9:33 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
Metroid Prime Remastered is one of the prettiest games I've played on the Switch. The 60 fps is honestly pretty jarring for me given most games I've played on the console and it's amazing how much fidelity they squeezed out of it
April 22, 2025 at 5:03 PM
I wonder how useful it'd be to allow source files to annotate how much memory should be pre-allocated for certain algorithms to avoid repeated allocations as structures grow
April 14, 2025 at 5:23 PM
The Banko Sentral ng Pilipinas knows that SMS is an insecure mode of communication, so why not force banks to get rid of SMS OTPs? business.inquirer.net/497198/bsp-w...
BSP warns public against text hijacking
MANILA, Philippines – The Bangko Sentral ng Pilipinas (BSP) on Tuesday warned the public against text hijacking, a method to deliver smishing attacks wherein fraudsters use named SMS Sender IDs
business.inquirer.net
April 10, 2025 at 6:02 AM
been a hot minute since I cooked this good
April 2, 2025 at 6:15 PM
Switch 2 single-handedly deleted whatever need I have left of a gaming PC
April 2, 2025 at 4:15 PM
Type holes are infinitely more useful than LLMs
April 2, 2025 at 12:51 PM
Reposted by justin garcia
UNDERTALE is on sale for $1.

If you're a bluesky user who hasn't played this game - now is the best time to join the other 99% of people on this website and pick it up.

store.steampowered.com/app/391540/U...
Save 90% on Undertale on Steam
UNDERTALE! The RPG game where you don't have to destroy anyone.
store.steampowered.com
March 13, 2025 at 10:46 PM
erm
March 11, 2025 at 11:48 AM
I think it'd be cool if the purescript analyzer could reduce memory allocations in non-interactive mode by turning off certain information from being gathered during compilation
March 9, 2025 at 1:23 PM
March 9, 2025 at 1:21 PM
the album mix of Mimic is so darn good
youtu.be/Mygq0AjrWLQ
Mimic
YouTube video by PROJECT ACES - Topic
youtu.be
March 2, 2025 at 6:53 AM
Instance heads are annoying to lower
March 2, 2025 at 6:41 AM
type checker that auto-plays youtu.be/L8XbI9aJOXk on trivial unification errors
Cat Laughing At You
YouTube video by SevTube
youtu.be
March 2, 2025 at 4:51 AM
Zen has a learning curve (at least coming from base Firefox) but it definitely delivers on the base promise. I also finally have a reason to use containers more seriously with its workspaces.
February 28, 2025 at 4:18 PM
Reposted by justin garcia
Hi, I am open for work!

My debt installment request has been accepted but it is still money I have to pay. My refurbished phone is getting closer to its death by the day, and my aging laptop is also starting to struggle (a nightmare to type "c", "d" and "e" 😭)
February 27, 2025 at 10:05 AM