D
Donnacha Oisín Kidney
doisinkidney.com · Personal blog · on HN since 2018
Donnacha Oisín Kidney writes about Haskell, Agda, functional programming, and algebraic structures like semirings, combinators and free monoids.
What HN saysHN links it for functional programming and math-heavy posts, such as the series on breadth-first traversals and the one on convolutions and semirings.
15HN people shared it
3linked it in comments
21stories submitted
665story points
8 months agolast shared
2018people per year2026
Most-shared posts
- 1What Is Good About Haskell?3 people · 297 points · first shared 2019 · 421 comments on HN
- 2Fun with Combinators3 people · 77 points · first shared 2020 · 16 comments on HN
- 3Solving Programming Puzzles Without Using Your Brain2 people · 122 points · first shared 2019 · 17 comments on HN
- 4Formalising Graphs with Coinduction in Agda2 people · 4 points · first shared 2024 · discussion on HN
- 5Convolutions and Semirings2 people · 1 points · first shared 2023 · discussion on HN
- 610-Part Series on Breadth-First Traversals in Haskell2 people · 1 points · first shared 2018 · discussion on HN
- 7Hyperfunctions1 people · 65 points · first shared 2021 · 7 comments on HN
- 8Concatenative Programming; the Free Monoid of Programming Languages (2019)1 people · 62 points · first shared 2020 · 8 comments on HN
- 9Single-Pass Huffman Coding1 people · 17 points · first shared 2025 · discussion on HN
- 10Enumerating Trees1 people · 5 points · first shared 2020 · discussion on HN
- 11Some Tricks for List Manipulation1 people · 4 points · first shared 2025 · 1 comments on HN
- 12A Queue for Effectful Breadth-First Traversals1 people · 3 points · first shared 2020 · discussion on HN
- 13Permutations by Sorting1 people · 3 points · first shared 2019 · discussion on HN
- 14Breadth-First Traversals in Far Too Much Detail (Haskell)1 people · 3 points · first shared 2018 · 1 comments on HN
- 15Monuses and Heaps1 people · 1 points · first shared 2026 · discussion on HN
What HN people wrote when they linked it
ogoparootbbo · 2023-01-16
http://ozark.hendrix.edu/~yorgey/pub/monoid-pearl.pdf
https://doisinkidney.com/posts/2017-10-13-convolutions-and-semirings.h…
agumonkey · 2018-06-03
part 3 in a series https://doisinkidney.com/series/Breadth-First%20Traversals.html
lapinot · 2021-07-26
> It is incredibly common in mathematics to silently "convert" objects between different types. [..] silently identifying isomorphic objects
Would you agree that correct instances of this pattern are exactly cases of considering objects only up to isomorphism? The problems of equality in constructive mathematics is a complicated one but things are starting to clear out, with constructive interpretations of this pattern (eg constructive models of univalence, implemented in cubical agda) people are starting to do wonders, like this superb grad thesis about finiteness [1].
The hard part is certainly the silentness of these identifications (which if i'm not mistaken is kind of the difference between extensional and intensional logics). But again i believe that they can be systematized contextually: one could for example declare in a preample which implicit isomorphisms they are going to use, which would then be disambiguated by type and decidably searched-for.
> ignore certain things [..] basically all the common notational shorthands
This is certainly a challenge for formalization, but my belief is that it can be done. Imho this is where the cross-pollination between "real-life programming" and constructive maths shows: contextual generalization (binding) of unbound variables (eg implicit polymorphism in ML-likes types, structure inference and coercions along structure refinements using typeclasses/search-like procedures and unification hints, ...). We definitely have to…