Footprints in the sand from Thomas Greco
Trials and tribulations of a programmer with a deep appreciation for deterministic software... and also, life!
Some posts first appear at Hindley Milner Systems and are mirrored here. Enjoy!

Prevent Impossible States Pt. 2 - State Transitions
Model a timer's states and events with TypeScript unions, then define the rules for moving between them.
Life of a stargazer
featuring Colorfigures
Prevent Impossible States Pt. 1 - Union Types
Use TypeScript discriminated unions to require the right fields, narrow object types, and catch unhandled cases.
Fun with Functors
JavaScript arrays are functors. What that means, the two laws they follow, and how to build a Box of your own.