Advent of Justin 2018


I will be posting a new post every day that summarizes and reflects on my past blog posts here:

I am still looking for people to volunteer to translate articles:

Thanks to @nwolverson who suggested I should realize this series


The advent has started, and the first day’s post is about Simple-JSON here:

Thanks to Alexander Klink and Martin Valdes for the German and Spanish translations for this post!


I did? I totally don’t remember doing so. Good stuff anyway.


Here is the second day’s post about Psc-Package:


Here is day three, where i talk about my “Tanghulu” library and using Symbols for type-level naturals:


Now here’s day 4, where I talk about Easy-PureScript-Nix and how to get started with writing Nix derivations:


Here is day 5, where I talk about how Type Classes are pattern matching for types:

Thanks to @arcatan for the translation!


Day 6 is about using Home Run Ball to get automatically get derivation for values using row types:


Day 7 is about Spacchetti, the Psc-Package set powered by the Dhall programming language:


day 8 is about using parameters for paths in Symbols, giving you parametrized type-level strings for free:


Day 9 revisited the day 2 topic but with Nix involved:


Day 10 is about using datatype generics for all kinds of things, like generating typescript types or deserializing JSON to sum/product types:


Day 11 is about de/serializing inferred record types to/from JSON:


Day 12 is about using type information to extract information from INI files, with tortellINI, in both PureScript and Haskell:


Day 13 is about type-level string templates with optional type annotations:


Day 14 is about implementing your own compiler type class in the PureScript compiler:


Day 15 is about converting (if any) bower projects to nix using psc-package2nix:


Day 16 is about stuffing Variants into JS Errors to optionally extract values later:


Day 17 is about how to use Row.Union constraints to have well-typed partial properties


Day 18 is about Jajanmen, how to extract a record type from a Symbol