Skip to main content

Tagless-Final Style

Using my custom keyboard
I boot into NixOS
And then I start XMonad,
A terminal, and Emacs

From my brain through the keyboard
Via Emacs to a file
I love to create software
Using tagless-final style

Start the design with the types
Stub functions with undefined
Enable some extensions
MultiParamTypeClasses

Deriving Eq, Ord, and Show
And Semigroup and Monoid
Functor and Applicative
Alternative and Monad

From my brain through the keyboard
Via Emacs to a file
I love to create software
Using tagless-final style

Using base, bytestring, and text
transformers, not mtl
directory, filepath, time
deepseq, async, stm

process, network, warp, servant
barbies, containers, vector
aeson, lens, and cryptonite
Test with QuickCheck, HUnit

From my brain through the keyboard
Via Emacs to a file
I love to create software
Using tagless-final style

New buffer, module Main where
main :: IO ()
Write a CLI parser
With optparse-applicative

git add, git commit, git push
Keep an eye on the CI
And when all the tests have passed
It’s time to add to Hackage

From my brain through the keyboard
Via Emacs to a file
I love to create software
Using tagless-final style

Versions

Notes

  • I created this song for good friend Tal Walter, who is into keyboards, Emacs, and Haskell.
  • I first tried creating lyrics using a variety of proprietary and local LLM models, but I was unhappy with all of the results and wrote the above lyrics myself. They are written for a friend, but any misrepresentations are my own fault.
  • The lyrics, © 2024 by Travis Cardwell, are licensed under CC BY 4.0. Feel free to distribute, remix, adapt, and build upon the material in any medium or format, even for commercial purposes, as long as credit/attribution is given.
  • The audio for all versions is created and owned by Suno Inc. It may be used for non-commercial purposes, subject to compliance with the Suno Terms of Service.
Author

Travis Cardwell

Published

Tags