Chris Done's Blog

Blog all about programming, especially in Haskell since 2008!
https://chrisdone.com/ (RSS)
visit blog
A modest critique of Htmx
20 Aug 2024 | original ↗

A modest critique of Htmx body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Naming sum types is often hard
9 Jul 2024 | original ↗

Naming sum types is often hard body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Portals in Emacs
17 Jun 2024 | original ↗

Portals in Emacs body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

All my projects (2008-2023)
12 May 2024 | original ↗

All my projects (2008-2023) body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Halogen is better than React at everything
23 Feb 2024 | original ↗

Halogen is better than React at everything body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Reports of RSS/Atom's death are greatly exaggerated
16 Feb 2024 | original ↗

Reports of RSS/Atom’s death are greatly exaggerated body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Hell: Shell scripting Haskell dialect
26 Dec 2023 | original ↗

Hell: Shell scripting Haskell dialect body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Codebases and love
4 Oct 2023 | original ↗

Codebases and love body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

A spectrum of web dev abstraction
4 Oct 2023 | original ↗

A spectrum of web dev abstraction body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

AI and Machine Thinking
23 Sept 2023 | original ↗

AI and Machine Thinking body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Pickling: The really obvious missing feature of all web browsers
7 Sept 2023 | original ↗

Pickling: The really obvious missing feature of all web browsers body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

Reasoning violently
4 Aug 2023 | original ↗

Reasoning violently body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Tamagotchi tooling
4 Aug 2023 | original ↗

Tamagotchi tooling body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Three questions of language design
7 Jan 2023 | original ↗

Three questions of language design body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Things I've changed my mind about
20 Dec 2022 | original ↗

Things I’ve changed my mind about body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Inflex
21 Oct 2022 | original ↗

Inflex body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; } a...

Immutable Publishing Policy
11 Feb 2022 | original ↗

Immutable Publishing Policy body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

A plain English description of monads without Haskell code
31 Jan 2022 | original ↗

A plain English description of monads without Haskell code body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

Thoughts on type class implementation
9 Jan 2022 | original ↗

Thoughts on type class implementation body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

My negative views on Rust
22 Dec 2021 | original ↗

My negative views on Rust body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Inflex Bibliography
8 Sept 2021 | original ↗

Inflex Bibliography body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

The Movement Principle
10 Apr 2021 | original ↗

The Movement Principle body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

What's wrong with ImplicitParams
20 Mar 2021 | original ↗

What’s wrong with ImplicitParams body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

How exactly ExceptT differs to EarlyDo
5 Jan 2021 | original ↗

How exactly ExceptT differs to EarlyDo body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left:...

Haskell doesn't have macros
29 Dec 2020 | original ↗

Haskell doesn’t have macros body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Is it Try.do that is dangerous?
24 Dec 2020 | original ↗

Is it Try.do that is dangerous? body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Try.do for recoverable errors in Haskell
21 Dec 2020 | original ↗

Try.do for recoverable errors in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left:...

Recoverable errors in Haskell
21 Dec 2020 | original ↗

Recoverable errors in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Use import aliases to easily access fields
15 Dec 2020 | original ↗

Use import aliases to easily access fields body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

The language of spreadsheets is bad
13 Nov 2020 | original ↗

The language of spreadsheets is bad body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

What’s wrong with the grid?
12 Nov 2020 | original ↗

What’s wrong with the grid? body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Ghosts of Departed Proofs Convenience
7 Dec 2019 | original ↗

Ghosts of Departed Proofs Convenience body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Defaulting fields in a record
7 Dec 2019 | original ↗

Defaulting fields in a record body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Statically Checked Overloaded Strings
13 Nov 2019 | original ↗

Statically Checked Overloaded Strings body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Static Smart Constructors with Double Splices
22 Aug 2019 | original ↗

Static Smart Constructors with Double Splices body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Client-side web programming in Haskell: A retrospective
25 Jul 2019 | original ↗

Client-side web programming in Haskell: A retrospective body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

German Naming Convention
7 Jun 2019 | original ↗

German Naming Convention body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Dynamically typed Haskell
6 Apr 2019 | original ↗

Dynamically typed Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Web engines in Haskell
5 Apr 2019 | original ↗

Web engines in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Lazy list length
23 Aug 2018 | original ↗

Lazy list length body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

Type inequality operator
19 Jun 2018 | original ↗

Type inequality operator body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Fast Haskell: Competing with C at parsing XML
11 Jan 2017 | original ↗

Fast Haskell: Competing with C at parsing XML body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

hindent 5: One style to rule them all
29 Aug 2016 | original ↗

hindent 5: One style to rule them all body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

A philosophical difference between Haskell and Lisp
19 Dec 2015 | original ↗

A philosophical difference between Haskell and Lisp body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Use the REPL, Luke
15 Jul 2015 | original ↗

Use the REPL, Luke body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

The path package
27 Jun 2015 | original ↗

The path package body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

Existentials and the heterogenous list fallacy
21 Jun 2015 | original ↗

Existentials and the heterogenous list fallacy body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

The constraint trick for instances
19 Jun 2015 | original ↗

The constraint trick for instances body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Stream fusion and composability (Java 8 and Haskell) for newbies
11 Jun 2015 | original ↗

Stream fusion and composability (Java 8 and Haskell) for newbies body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

My Haskell tooling wishlist
24 Jan 2015 | original ↗

My Haskell tooling wishlist body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Measuring duration in Haskell
5 Jan 2015 | original ↗

Measuring duration in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Lucid 2.0: clearer than before
20 Nov 2014 | original ↗

Lucid 2.0: clearer than before body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Lucid: templating DSL for HTML
20 Nov 2014 | original ↗

Lucid: templating DSL for HTML body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Fast pagination on PostgreSQL
28 Oct 2014 | original ↗

Fast pagination on PostgreSQL body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

shell-conduit: Write shell scripts in Haskell with Conduit
21 Sept 2014 | original ↗

shell-conduit: Write shell scripts in Haskell with Conduit body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

Formatting in Haskell
20 Sept 2014 | original ↗

Formatting in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

hindent: A Haskell indenter
20 Sept 2014 | original ↗

hindent: A Haskell indenter body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Teaching: A good (and bad) example
19 Jul 2014 | original ↗

Teaching: A good (and bad) example body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

An alternative Haskell home page
29 May 2014 | original ↗

An alternative Haskell home page body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Presentations update
30 Apr 2014 | original ↗

Presentations update body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

The Identity monad trick
29 Apr 2014 | original ↗

The Identity monad trick body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

The printer Haskell deserves
26 Apr 2014 | original ↗

The printer Haskell deserves body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Typeable and Data in Haskell
22 Apr 2014 | original ↗

Typeable and Data in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Haskell structured diffs
1 Apr 2014 | original ↗

Haskell structured diffs body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Reloading running code in GHCi
16 Mar 2014 | original ↗

Reloading running code in GHCi body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Attempto Controlled English
24 Feb 2014 | original ↗

Attempto Controlled English body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Emacs, Notmuch and Offlineimap
8 Feb 2014 | original ↗

Emacs, Notmuch and Offlineimap body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Pure IO monad and Try Haskell
12 Jan 2014 | original ↗

Pure IO monad and Try Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Dijkstra on Haskell and Java
8 Jan 2014 | original ↗

Dijkstra on Haskell and Java body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Emacs users are like Terry Pratchett’s Igors
25 Dec 2013 | original ↗

Emacs users are like Terry Pratchett’s Igors body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Recording simple GIFs for demos
9 Dec 2013 | original ↗

Recording simple GIFs for demos body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

structured-haskell-mode
9 Dec 2013 | original ↗

structured-haskell-mode body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Making GHCi scale better and faster
20 Nov 2013 | original ↗

Making GHCi scale better and faster body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Twitter waterflow problem and loeb
14 Nov 2013 | original ↗

Twitter waterflow problem and loeb body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Functional Programming is Hard?
21 Sept 2013 | original ↗

Functional Programming is Hard? body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

God-mode for Emacs
21 Sept 2013 | original ↗

God-mode for Emacs body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

CamelCase vs under_scores vs hyphenated-words
30 Aug 2013 | original ↗

CamelCase vs under_scores vs hyphenated-words body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Analysis of Emacs keys pressed
7 Aug 2013 | original ↗

Analysis of Emacs keys pressed body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Haskell News
26 Jul 2013 | original ↗

Haskell News body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

IRC Browse
23 Jul 2013 | original ↗

IRC Browse body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

Fay, JavaScript, etc.
15 Sept 2012 | original ↗

Fay, JavaScript, etc. body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Making HaskellDB slightly more type-safe
25 Aug 2012 | original ↗

Making HaskellDB slightly more type-safe body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left:...

Comments on my blog
19 Jan 2012 | original ↗

Comments on my blog body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Ji, a little library for controlling a web browser from Haskell
26 Dec 2011 | original ↗

Ji, a little library for controlling a web browser from Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

A concept for editing code as an AST rather than text
17 Dec 2011 | original ↗

A concept for editing code as an AST rather than text body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

A map generic upon the value thanks to typeable
5 Dec 2011 | original ↗

A map generic upon the value thanks to typeable body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

HaskellDB: A long tutorial
6 Nov 2011 | original ↗

HaskellDB: A long tutorial body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Common Lisp/Haskell syntactic comparison
31 Oct 2011 | original ↗

Common Lisp/Haskell syntactic comparison body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left:...

Deprecate Prelude.head and partial functions
17 Oct 2011 | original ↗

Deprecate Prelude.head and partial functions body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

“Value polymorphism”, simple explanation with examples
16 Oct 2011 | original ↗

“Value polymorphism”, simple explanation with examples body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; ...

Rank-N types, a simple DB example
16 Oct 2011 | original ↗

Rank-N types, a simple DB example body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Experimenting with GHCJS, the Haskell→JavaScript compiler
20 Aug 2011 | original ↗

Experimenting with GHCJS, the Haskell→JavaScript compiler body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

Some insights from The Mythical Man Month starting from Chapter 11
26 Jun 2011 | original ↗

Some insights from The Mythical Man Month starting from Chapter 11 body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

‘amb’ operator and the list monad
10 Apr 2011 | original ↗

‘amb’ operator and the list monad body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Hulk: A Haskell IRC server
30 Jan 2011 | original ↗

Hulk: A Haskell IRC server body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Lisk - Lisp and Haskell
25 Nov 2010 | original ↗

Lisk - Lisp and Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Duck typing in Haskell
22 Nov 2010 | original ↗

Duck typing in Haskell body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Applicative and ConfigFile, HSQL
10 Feb 2009 | original ↗

Applicative and ConfigFile, HSQL body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

Lojbot
18 Dec 2008 | original ↗

Lojbot body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; } a...

Kibro on Shared Hosting
11 Dec 2008 | original ↗

Kibro on Shared Hosting body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

Haskell Formlets: Composable web form construction and validation
14 Nov 2008 | original ↗

Haskell Formlets: Composable web form construction and validation body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height:...

Kibro: Haskell, Lighttpd and FastCGI
14 Nov 2008 | original ↗

Kibro: Haskell, Lighttpd and FastCGI body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px...

New Kibro
14 Oct 2008 | original ↗

New Kibro body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

Kibro refactoring
12 Oct 2008 | original ↗

Kibro refactoring body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid...

GHCi on Acid
1 Aug 2008 | original ↗

GHCi on Acid body { max-width: 40em; margin: .5in auto; font-size: 18px; font-family: serif; line-height: 1.5; } pre, code { font-size: 16px; word-wrap: break-word; } pre { padding-left: 1em; line-height: 1.5em; border-left: 5px solid #efefef; ...

↑ these items are from RSS. Visit the blog itself at https://chrisdone.com/ to find other articles and to appreciate the author's digital home.