56,966 blogs · [ { "id": "01a07df3-db9d-728e-a14d-4a2b5f74a5d8", "title": "A break from programming languages", "url": "https://lexi-lambda.github.io/blog/2025/05/29/a-break-from-programming-languages/", "published_at": "2025-05-29T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b60678b7f", "title": "An introduction to typeclass metaprogramming", "url": "https://lexi-lambda.github.io/blog/2021/03/25/an-introduction-to-typeclass-metaprogramming/", "published_at": "2021-03-25T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b60c1fc94", "title": "Names are not type safety", "url": "https://lexi-lambda.github.io/blog/2020/11/01/names-are-not-type-safety/", "published_at": "2020-11-01T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b60f1affb", "title": "Types as axioms, or: playing god with static types", "url": "https://lexi-lambda.github.io/blog/2020/08/13/types-as-axioms-or-playing-god-with-static-types/", "published_at": "2020-08-13T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b61aa4434", "title": "No, dynamic type systems are not inherently more open", "url": "https://lexi-lambda.github.io/blog/2020/01/19/no-dynamic-type-systems-are-not-inherently-more-open/", "published_at": "2020-01-19T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b6249a9b7", "title": "Parse, don’t validate", "url": "https://lexi-lambda.github.io/blog/2019/11/05/parse-don-t-validate/", "published_at": "2019-11-05T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b6341720d", "title": "Empathy and subjective experience in programming languages", "url": "https://lexi-lambda.github.io/blog/2019/10/19/empathy-and-subjective-experience-in-programming-languages/", "published_at": "2019-10-19T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b63f30022", "title": "Demystifying MonadBaseControl", "url": "https://lexi-lambda.github.io/blog/2019/09/07/demystifying-monadbasecontrol/", "published_at": "2019-09-07T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b64a6a364", "title": "Defeating Racket’s separate compilation guarantee", "url": "https://lexi-lambda.github.io/blog/2019/04/21/defeating-racket-s-separate-compilation-guarantee/", "published_at": "2019-04-21T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b6581a682", "title": "Macroexpand anywhere with local-apply-transformer!", "url": "https://lexi-lambda.github.io/blog/2018/10/06/macroexpand-anywhere-with-local-apply-transformer/", "published_at": "2018-10-06T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b66266b86", "title": "Custom core forms in Racket, part II: generalizing to arbitrary expressions and internal definitions", "url": "https://lexi-lambda.github.io/blog/2018/09/13/custom-core-forms-in-racket-part-ii-generalizing-to-arbitrary-expressions-and-internal-definitions/", "published_at": "2018-09-13T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b66371b42", "title": "Reimplementing Hackett’s type language: expanding to custom core forms in Racket", "url": "https://lexi-lambda.github.io/blog/2018/04/15/reimplementing-hackett-s-type-language-expanding-to-custom-core-forms-in-racket/", "published_at": "2018-04-15T00:00:00+00:00" }, { "id": "01a07df3-db9d-728e-a14d-4a2b67150ba2", "title": "An opinionated guide to Haskell in 2018", "url": "https://lexi-lambda.github.io/blog/2018/02/10/an-opinionated-guide-to-haskell-in-2018/", "published_at": "2018-02-10T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f57a1a1df", "title": "A space of their own: adding a type namespace to Hackett", "url": "https://lexi-lambda.github.io/blog/2017/10/27/a-space-of-their-own-adding-a-type-namespace-to-hackett/", "published_at": "2017-10-27T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f588b89bb", "title": "Hackett progress report: documentation, quality of life, and snake", "url": "https://lexi-lambda.github.io/blog/2017/08/28/hackett-progress-report-documentation-quality-of-life-and-snake/", "published_at": "2017-08-28T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f58cf9834", "title": "User-programmable infix operators in Racket", "url": "https://lexi-lambda.github.io/blog/2017/08/12/user-programmable-infix-operators-in-racket/", "published_at": "2017-08-12T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f58fe4291", "title": "Unit testing effectful Haskell with monad-mock", "url": "https://lexi-lambda.github.io/blog/2017/06/29/unit-testing-effectful-haskell-with-monad-mock/", "published_at": "2017-06-29T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5946c609", "title": "Realizing Hackett, a metaprogrammable Haskell", "url": "https://lexi-lambda.github.io/blog/2017/05/27/realizing-hackett-a-metaprogrammable-haskell/", "published_at": "2017-05-27T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f599090c6", "title": "Lifts for free: making mtl typeclasses derivable", "url": "https://lexi-lambda.github.io/blog/2017/04/28/lifts-for-free-making-mtl-typeclasses-derivable/", "published_at": "2017-04-28T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5a113041", "title": "Rascal is now Hackett, plus some answers to questions", "url": "https://lexi-lambda.github.io/blog/2017/01/05/rascal-is-now-hackett-plus-some-answers-to-questions/", "published_at": "2017-01-05T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5aa44711", "title": "Rascal: a Haskell with more parentheses", "url": "https://lexi-lambda.github.io/blog/2017/01/02/rascal-a-haskell-with-more-parentheses/", "published_at": "2017-01-02T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5ab3ce5f", "title": "Using types to unit-test in Haskell", "url": "https://lexi-lambda.github.io/blog/2016/10/03/using-types-to-unit-test-in-haskell/", "published_at": "2016-10-03T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5bb23b67", "title": "Understanding the npm dependency model", "url": "https://lexi-lambda.github.io/blog/2016/08/24/understanding-the-npm-dependency-model/", "published_at": "2016-08-24T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5c5334da", "title": "Climbing the infinite ladder of abstraction", "url": "https://lexi-lambda.github.io/blog/2016/08/11/climbing-the-infinite-ladder-of-abstraction/", "published_at": "2016-08-11T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5cbe58de", "title": "Four months with Haskell", "url": "https://lexi-lambda.github.io/blog/2016/06/12/four-months-with-haskell/", "published_at": "2016-06-12T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5d73cb7b", "title": "Simple, safe multimethods in Racket", "url": "https://lexi-lambda.github.io/blog/2016/02/18/simple-safe-multimethods-in-racket/", "published_at": "2016-02-18T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5d8e7e4e", "title": "ADTs in Typed Racket with macros", "url": "https://lexi-lambda.github.io/blog/2015/12/21/adts-in-typed-racket-with-macros/", "published_at": "2015-12-21T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5e26768a", "title": "Functionally updating record types in Elm", "url": "https://lexi-lambda.github.io/blog/2015/11/06/functionally-updating-record-types-in-elm/", "published_at": "2015-11-06T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5e64603d", "title": "Canonical factories for testing with factory_girl_api", "url": "https://lexi-lambda.github.io/blog/2015/09/23/canonical-factories-for-testing-with-factory-girl-api/", "published_at": "2015-09-23T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5e988797", "title": "Managing application configuration with Envy", "url": "https://lexi-lambda.github.io/blog/2015/08/30/managing-application-configuration-with-envy/", "published_at": "2015-08-30T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5f6ef448", "title": "Deploying Racket applications on Heroku", "url": "https://lexi-lambda.github.io/blog/2015/08/22/deploying-racket-applications-on-heroku/", "published_at": "2015-08-22T00:00:00+00:00" }, { "id": "01a07df3-db9e-70b0-b43e-ba4f5fe43e33", "title": "Automatically deploying a Frog-powered blog to GitHub pages", "url": "https://lexi-lambda.github.io/blog/2015/07/18/automatically-deploying-a-frog-powered-blog-to-github-pages/", "published_at": "2015-07-18T00:00:00+00:00" } ] posts Claim your blog
Back to Alexis King
Blog · corpus.blog/blogs/lexi-lambda.github.io/posts

Alexis King

lexi-lambda.github.io

2025

2021

2020

2019

2018

2017

2016

2015