Blog
2025
November
October
September
- 22
 - GHC 9.12.3-rc1
 - 13
 - GHC 9.14.1-alpha2
 - 12
 - GHC 9.10.3
 
August
- 20
 - GHC 9.14.1-alpha1
 - 19
 - GHC 9.10.3-rc4
 - 09
 - GHC 9.10.3-rc3
 - 06
 - GHC 9.10.3-rc2
 
July
May
- 04
 - GHC 9.10.2
 
April
March
- 24
 - GHC 9.6.7
 - 15
 - GHC 9.12.2
 
February
- 27
 - GHC 9.12.2-rc1
 - 19
 - GHC 9.6.7-rc2
 
January
2024
December
- 16
 - GHC 9.12.1
 - 04
 - GHC 9.8.4
 
November
- 30
 - GHC 9.12.1-rc1
 - 16
 - GHC 9.12.1-alpha3
 - 06
 - The GHC 9.8.3 Dilemma
 - GHC 9.12.1-alpha2
 - 02
 - Good Time To Brush Up On C
 
October
September
August
July
- 29
 - Removing Support For GHC 8.2
 - 13
 - Haskell Monorepo GitHub Actions (Part 3)
 - 08
 - Haskell Monorepo GitHub Actions (Part 2)
 - 05
 - Haskell Monorepo GitHub Actions (Part 1)
 - 03
 - Haskell Feature Flag Demo (Part 4)
 - Haskell Feature Flag Demo (Part 3)
 - Haskell Feature Flag Demo (Part 2)
 - Haskell Feature Flag Demo (Part 1)
 - 01
 - GHC 9.6.6
 
June
May
- 31
 - RSS Part 19: Current Thoughts
 - 30
 - RSS Part 18: QuiteRSS is Dead
 - 20
 - Cabal/Stack initialBuildSteps Breakage (Part 2)
 - 13
 - Cabal/Stack initialBuildSteps Breakage
 - 11
 - GHC 9.10.1
 
April
- 30
 - JSON/YAML Object Key Order Using Aeson
 - 29
 - Emacs Philosophy
 - Tagless-Final Style
 - 28
 - GHC 9.10.1-rc1
 - 27
 - Golden Week Hike
 - 24
 - lsupg Static Builds With GHC 9 (Part 5)
 - 23
 - lsupg Static Builds With GHC 9 (Part 4)
 - 22
 - lsupg Static Builds With GHC 9 (Part 3)
 - 20
 - lsupg Static Builds With GHC 9 (Part 2)
 - 16
 - GHC 9.6.5
 - GHC 9.10.1-alpha3
 
March
February
January
2023
December
November
- 11
 - GHC 9.4.8
 
October
- 10
 - GHC 9.8.1
 
September
- 30
 - GHC 9.8.1-rc1
 - 26
 - GHC 9.6.3
 - 20
 - GHC 9.8.1-alpha4
 - 17
 - New TTC Features
 
August
- 27
 - GHC 9.4.7
 - 24
 - GHC 9.8.1-alpha3
 - 11
 - GHC 9.8.1-alpha2
 - 08
 - GHC 9.4.6
 
July
June
- 30
 - Reddit Drama and the Haskell Community
 - DC Motor Fans
 - 19
 - Disabling Obelisk and nix-thunk Fancy Output
 
May
- 28
 - optparse-applicative Compatibility
 - 27
 - GHC 9.2.8
 - 26
 - GHC 8.10.7 mmap Issue (Part 3)
 - 24
 - GHC 9.6.2
 - 19
 - GHC 8.10.7 mmap Issue (Part 2)
 - 10
 - GHC 8.10.7 mmap Issue
 - 07
 - Staging With Class
 
April
- 25
 - Collapse SQL Whitespace (Part 2)
 - 23
 - Collapse SQL Whitespace
 - 19
 - GHC 9.4.5
 - 16
 - Haskell Exercise for AI
 - 07
 - Codd Design Ideas (Part 2)
 - 06
 - Codd Experiment 4: Migration Conflicts
 - Codd Schema Documentation
 - 04
 - Codd Experiment 3: Checkpoint Migrations
 - 03
 - Codd Migration Inverses
 
March
- 29
 - Codd Design Ideas
 - 28
 - Codd Experiment 2: PostgreSQL Upgrade
 - 24
 - Codd Experiment
 - 21
 - Literate Haskell Markdown Headings
 - 18
 - GitHub Actions Configuration Update
 - 12
 - GHC 9.6.1
 - 04
 - GHC 9.6.1-rc1
 - Laptop Issues (Part 2)
 
February
January
- 31
 - GHC 9.6.1-alpha2
 - 30
 - Obelisk Memory Limiting
 - 15
 - Laptop Issues
 - 14
 - GHC 9.6.1-alpha1
 - GitHub Actions Scripted Matrix
 - 11
 - Chrome MathML Support
 - 03
 - Testing Dependency Version Lower Bounds
 
2022
December
November
October
September
August
- 23
 - GHC 9.4.2
 - 14
 - Haskell GitHub Actions Version Support
 - 12
 - Mountain Day
 - 08
 - GHC 9.4.1
 - 02
 - Hot Weather (Part 2)
 
July
- 31
 - GHC 9.2 Alpine Segmentation Fault
 - Software Foundations Study Group
 - Earthly Conditional Tags
 - Hot Weather
 - 28
 - GHC 9.2.4
 - 23
 - GHC 9.4.1-rc1
 - 06
 - MTL Release (Part 6)
 
June
- 25
 - Electric Kettle Baby Hazard
 - ByteString Literals
 - GHC 9.4.1-alpha3
 - 19
 - Hackage Metadata (Part 2)
 - 11
 - Chrome DPMS Bug
 
May
- 28
 - GHC 9.2.3
 - 25
 - GHC 9.4.1-alpha2
 - 21
 - MTL Release (Part 5)
 - 18
 - Photo Gallery Part 8: Interlude
 - 15
 - MTL Release (Part 4)
 - 14
 - MTL Release (Part 3)
 - 11
 - MTL Release (Part 2)
 - 09
 - Strange Earthquake
 - First Snake of the Season
 - 08
 - MTL Release
 - 04
 - Element Troubles (Part 2)
 - 02
 - GHC 9.4.1-alpha1
 
April
- 29
 - Element Troubles
 - 28
 - Earthly Arguments And Tags
 - 20
 - Rhyolite and gargole-postgresql
 - 11
 - Reflex Tutorial Upgrade (Part 5)
 - Reflex Tutorial Upgrade (Part 4)
 - 09
 - Nix Terminfo and Locale Archive
 - 07
 - Reflex Tutorial Upgrade (Part 3)
 - 06
 - Support Three Major Versions (Part 2)
 - Reflex Tutorial Upgrade (Part 2)
 - Multi-User Nix Installation
 - 05
 - Reflex Tutorial Upgrade
 - 04
 - Data types à la carte
 - 01
 - Reflex Package Versions
 - Nix Cleanup Everything
 
March
- 31
 - Nix Reproducibility
 - 30
 - Food-Serving Robot
 - Reflex Unexpected Duplicate (Part 2)
 - 29
 - Reflex Unexpected Duplicate
 - 28
 - Haskell WIP Books
 - 26
 - Tortilla Chips (Part 4)
 - 25
 - ghc-musl Part 5: lsupg Executable Sizes
 - ghc-musl Part 4: lsupg With Cabal
 - ghc-musl Part 3: lsupg With Stack
 - 24
 - ghc-musl Part 2: Earthly
 - ghc-musl Part 1
 - 23
 - Building Static Executables With Stack
 - 22
 - Japanese Mansion Security
 - 20
 - Stackage Releases
 - 18
 - TTC Release
 - 14
 - Support Three Major Versions
 - 11
 - TTC Parse Error Helper Functions
 - 10
 - Pandoc Walkable Instances
 - 08
 - Pandoc Filter Options
 - 07
 - GHC 9.2.2
 - 06
 - Website MathJax
 - 04
 - packdeps (Part 2)
 - Vim and inotify
 - 03
 - Queue Sheet Hackage Build Failure (Part 2)
 - 02
 - Queue Sheet Hackage Build Failure
 - Project Releases (Part 2)
 - Hackage Metadata
 - 01
 - Project Releases
 
February
- 25
 - Color Library HSV Bug
 - 23
 - Alacritty (Part 2)
 - GNOME Terminal
 - 22
 - Terminal Color Schemes (Part 2)
 - 21
 - Terminal Color Schemes (Part 1)
 - 19
 - Alacritty
 - 18
 - Fcitx 5 Issues (Part 2)
 - 17
 - Fcitx 5 Issues
 - Tortilla Chips (Part 3)
 - 14
 - Photo Gallery Part 7: Current Thoughts
 - 12
 - EPSON EW-452A on Arch
 - 10
 - Photo Gallery Part 6: Piwigo
 - 09
 - Journal of Functional Programming Open Access
 - 08
 - Photo Gallery Part 5: Fussel
 - Sayonara Canon
 - 07
 - Photo Gallery Part 4: Lychee
 - 06
 - *virus
 - 03
 - Photo Gallery Part 3: PiGallery 2
 - 02
 - Photo Gallery Part 2: My Requirements
 - 01
 - Photo Gallery Part 1
 
January
- 31
 - HMock Matcher Predicates
 - 26
 - HMock Compatibility (Part 4)
 - HMock and Impredicative Polymorphism (Part 2)
 - 24
 - HMock and Impredicative Polymorphism
 - 18
 - Makefile Lazy Definitions
 - 17
 - horizontal-rule
 - 14
 - Project Packaging Changes
 - 12
 - packdeps
 - 07
 - cabal2nix –compiler Option
 - 05
 - Uninstalling Multi-User Nix
 - 01
 - Sunrise
 
2021
December
- 31
 - 2021 Review
 - 26
 - GHC 9.0.2
 - 25
 - TTC and LiterateX Releases
 - 21
 - New Laptop Options
 - 18
 - Invoke
 - 17
 - Makefile foreach Commands
 - 16
 - The Make Dilemma
 - 14
 - cabal.project Per GHC Version (Part 2)
 - 11
 - Why Use Mock Tests?
 - 10
 - seqcp
 - 08
 - cabal.project Per GHC Version
 - Nix vs. Cabal Conditionals
 - 07
 - FFI Sync
 - 06
 - Random Reproducibility
 - 02
 - HMock with MonadRandom
 - 01
 - HMock with DefaultSignatures
 
November
- 30
 - Mocking FileStatus
 - 29
 - Needle Ice
 - 26
 - Haskell Breaking Changes
 - 22
 - Log Message Versioning Policy
 - GHC 9.2.1 Support
 - 19
 - RSS Part 17: QuiteRSS Update
 - 17
 - RSS Part 16: QuiteRSS Day 1
 - 16
 - RSS Part 15: Client Reflections
 - 15
 - RSS Part 14: Feature Reflections
 - 13
 - RSS Part 13: RSS Guard
 - 12
 - RSS Part 12: yarr
 - 11
 - RSS Part 11: FreshRSS
 - 10
 - RSS Part 10: Tiny Tiny RSS
 - 09
 - RSS Part 9: Akregator
 - 08
 - RSS Part 8: Liferea
 - 07
 - RSS Part 7: QuiteRSS
 - 06
 - Farewell Bicycle
 - RSS Part 6: GORSS
 - 05
 - RSS Part 5: Newsboat
 - 04
 - Overflow While Parsing IPv4 Addresses (Part 4)
 - RSS Part 4: Thunderbird
 - 03
 - RSS Part 3: Validation Issues
 - 02
 - RSS Part 2: My Client Requirements
 - 01
 - RSS Part 1
 
October
- 30
 - GHC 9.2.1
 - 29
 - Strictness and Unboxing
 - Ginger Support For Aeson 2
 - 28
 - Chayote
 - Overflow While Parsing IPv4 Addresses (Part 3)
 - Overflow While Parsing IPv4 Addresses (Part 2)
 - 26
 - Aeson 2 Object Coercion (Part 2)
 - 25
 - Aeson 2 Object Coercion
 - 22
 - Overflow While Parsing IPv4 Addresses
 - 21
 - Parsing Bounded Integers (Part 2)
 - 20
 - Parsing Bounded Integers
 - 14
 - Website Processor Design
 - 11
 - Aeson 2 (Part 2)
 - 10
 - Aeson 2
 - 08
 - Locales in Haskell
 - 01
 - HMock Compatibility (Part 3)
 - HMock Compatibility (Part 2)
 
September
- 30
 - HMock Compatibility
 - 29
 - Haskell Time Zone Library backzone Support
 - 24
 - fused-effects, Tagless-Final, HMock
 - Book Disappearance
 - 23
 - haskell-feeds Logo
 - FeedPipe Logo
 - Abort FeedPipe?
 - 18
 - Aeson Object Design (Part 4)
 - 16
 - Aeson Object Design (Part 3)
 - 15
 - Aeson Object Design (Part 2)
 - 14
 - Aeson Object Design
 - 08
 - FeedPipe Design
 - 06
 - Book Web Services
 - 01
 - PGP Keys Update
 
August
- 31
 - Haskell Book Index Mistake
 - 27
 - GHC 8.10.7
 - 25
 - Status Report (Part 2)
 - 23
 - GHC 9.2.1-rc1
 - 22
 - Testing GHC Versions
 - 20
 - Dark Mode
 - 18
 - Status Report
 - 17
 - docker-pkg Updates
 - docker-ghc Updates
 - 12
 - Folding Soft Line Breaks
 - 11
 - Hard Drive Failure (Part 2)
 - FeedPipe Item Descriptions
 - RSS Feed Change (Again)
 - 10
 - RSS Feed Change
 - 08
 - RSS Tests
 - 06
 - Comment and URL Tags with Mutagen (Part 2)
 - 04
 - Comment and URL Tags with Mutagen
 - 03
 - PodRat
 - 01
 - Hard Drive Troubles
 
July
- 31
 - Daughter’s First Snake Spotting
 - 30
 - Hard Drive Failure
 - 29
 - Tortilla Chips (Part 2)
 - 28
 - Import Business
 - 27
 - FeedPipe (Part 3)
 - 26
 - Tortilla Chips
 - Recent Hikes
 - Cross-Platform Time Zones in Haskell
 - Scraped Content
 - 21
 - Stack Docker Bug
 - 20
 - LibOA Update
 - 19
 - FeedPipe (Part 2)
 - 16
 - Pandoc GPL
 - 15
 - FeedPipe
 - 14
 - Chrome is the IE 6 of Today
 - Tagged Index (Part 2)
 - 12
 - Tagged Index
 - 10
 - TTC Binary Builder Support
 - 09
 - Vietnamese Food
 - 08
 - Website Updates
 - 07
 - lsupg Nix Path and Release
 - 06
 - lsupg Progress
 - Nix Container Declarative Package Management
 - 05
 - lsupg Nix Support
 - 02
 - bm Release
 - 01
 - bm CLI Completion (Part 2)
 
June
- 29
 - bm CLI Completion
 - 27
 - GET Query Encoding
 - 26
 - New Project: bm (WIP)
 - 25
 - Project Releases
 - 24
 - optparse-applicative Breaking Change
 - 23
 - Abort browser-base
 - Nix Progress (Part 3)
 - 22
 - Nix Progress (Part 2)
 - 21
 - Nix Progress
 - 17
 - browser-base
 - 16
 - browser-home (Part 2)
 - 15
 - browser-home
 - 14
 - lsupg Release
 - 13
 - lsupg Progress
 - 10
 - lsupg Static Executable
 - 09
 - Mamushi
 - 08
 - Status Report
 - 07
 - Japanese Keelback
 - 06
 - GHC 8.10.5
 - 05
 - Japanese Striped Snake
 - 04
 - TTC Feedback
 - 03
 - TTC Release
 - 01
 - Typos and Feedback
 
May
- 30
 - All-Day Hike
 - 28
 - hr Release
 - 26
 - docker-pkg Update
 - LiterateX Release
 - 25
 - DNF Issue
 - 24
 - Haskell Diagrams GIF Animation
 - 21
 - Project Status
 - 20
 - Computer Problems
 - 18
 - Hiking in Fog
 - 17
 - Minimizing Change
 - 15
 - LiterateX Progress
 - 14
 - Hammerhead Worm
 - Encoding UTF-8 in Haskell
 - 12
 - i3 Multiple Terminal Issue
 - 11
 - Decoding UTF-8 in Haskell (Part 2)
 - 10
 - Decoding UTF-8 in Haskell
 - 07
 - LiterateX Example: Literate Haskell
 - Forest Rat Snake
 - 06
 - Website Internationalization
 - 03
 - extrema.is Name
 - 02
 - LiterateX Progress
 - 01
 - Black Kite
 - Cabal Compatibility
 
April
- 28
 - Status Report
 - 23
 - 1331
 - GHC 9.2.1-alpha2
 - 22
 - Articles System
 - 21
 - Blog Tags
 - 20
 - Base 2
 - 19
 - Abort Transformation!
 - 18
 - Windows Has a Four Hour Boot Time
 - 16
 - Packaging Base
 - 15
 - Copying a Bash Environment to a New Shell
 - Bash Escaping Issue (Part 3)
 - 14
 - Styling the Blog Index
 - 13
 - Bash Escaping Issue (Part 2)
 - 12
 - Bash Escaping Issue
 - Welcome to Costco. I Love you.
 - 11
 - Rewrite When More Than N Lines
 - 10
 - Running Base in a New Shell
 - 09
 - Projects and Website Plan
 
2020
August
RSS
Tags
- business (2)
 - entrepreneurship (1)
 - licenses (1)
 
- hardware (11)
 - computer (9)
 - electronics (1)
 - printer (2)
 
- life (45)
 
- mathematics (2)
 
- programming (141)
 
- project (187)
 - base (10)
 - bm (7)
 - browser-base (4)
 - docker-ghc (68)
 - docker-pkg (4)
 - feedpipe (17)
 - ghc-musl (7)
 - haskell-feeds (1)
 - hr (5)
 - literatex (13)
 - lsupg (19)
 - phatsort (8)
 - podrat (3)
 - queue-sheet (4)
 - redact (3)
 - ttc (18)
 - website (27)