The H2 Wiki


Articles

a-perspective-on-higher-haskell

accidentally-exponential

ai-doom-posterity

alternatives-convert-products-to-sums

api-design

attribute-grammar

automatic-differentiation-worked-examples-maths

automatic-differentiation-worked-examples

backups

behaviour-changes-flag-day

bells-theorem-made-simpler

bluefin-all

bluefin-plucking-constraints

bluefin-prevents-handles-leaking

bluefin-streams-finalize-promptly

bret-victor-talks

brooks-on-types

comments

complaining-about-languages

dante-for-dummies

data-map-strict-map-not-strict-map

data-structures-matter

decentralised-issue-trackers

demystifying-dlist

dimensions-functional-programming

dominic-cummings

dsl

exists

exitfailure-doesnt-exit

exploratory-programming

extended-set-theory

extensible-effects-interleaving

extensible-effects-mtl

flexport-ceo-wrong-bottleneck

fold

foldl-traverses-state-foldr-traverses-anything

forum-comments

functional-looping

ghc-8.10-9.6-experience-report

git-rebase-conflicts-display

git-rebase-conflicts

git-survival-guide

gnucash

good-design-and-type-safety-in-yahtzee

greenspun

harder-with-static-types

hascallstack-domain-errors

haskell-myths

haskell-programs-how-do-they-run

help-wanted

hkd-pattern-type-level-ski

how-i-play-video-on-linux

how-i-use-baba-is-you

how-i-use-cabal

how-i-use-dante

how-i-use-debian-dell-xps-13-7390

how-i-use-emacs

how-i-use-firefox

how-i-use-ghci-debugger

how-i-use-gnucash

how-i-use-hls-emacs-lsp

how-i-use-hp-deskjet-1050a

how-i-use-insurgency-on-debian

how-i-use-less

how-i-use-luks

how-i-use-macos

how-i-use-niceness

how-i-use-steam-proton-on-debian

how-i-use-tmp-postgres

how-i-use-tunefs

how-i-use-ulimit

how-i-use-varmilo-keyboard

how-i-use-webcam-photos

how-i-use-windows

how-to-write-profunctor-lenses

improving-the-typed-process-documentation

impure-lazy-language

io-transformer

lazy-map

learning-monads

listt-done-wrong

make-invalid-laziness-unrepresentable

making-haskell-popular

model-view-false-dichotomy

modules-for-lennart

mtl-style-for-free

multiset-semantics

mysterious-incomposability-of-decidable

nested-strict-data

next-haskell

oo-real-world-imperative-machine

oop-links-to-critique

opaleyes-api-breakage-policy

peter-principle

polymorphic-recursion-combinator

polymorphism-is-not-set-theoretic

polymorphism

postgres-weirdness

prefer-composition-to-application

product-profunctor-folds

pronouncing-abbreviations

properties-and-structure

python-madness

refactoring-neural-network

references-for-epistemic-logic

references-for-linear-logic

references-for-nvc

references-for-parametricity

references-for-quantum-mechanics

reproducible-tar

reverse-mode-automatic-differentiation

scala-continuations

scrap-all-your-typeclasses-but-one

scrap-your-lazy-lists

scrap-your-type-class-instance-bodies

seq

set-bag-irrelevance

simplifying-typeclasses

space-leaks-real-world

streaming

strict-haskell

strictness-in-types

sugar-considered-harmful

summation

symbolic-expressions-can-be-automatically-differentiated

thought-terminating-cliches-software

tilapia

tomejaguar

understanding-bound

unhelpful-ghc-error-messages

unreasonable-programmer

using-brain-less-refactoring-yahtzee

vector-space-naturally-isomorphic-dual

was-bound-but-now-im-free

what-i-dont-like-about-emacs

what-i-want-from-emacs

why-do-we-like-lazy-lists

why-is-naive-symbolic-differentiation-slow

why-we-like-laziness

wish-python-had

works-of-art

About

The H2 Wiki is dedicated to thoughts on technology and Haskell. The name is in homage to The C2 Wiki.

Contact

The main author is Tom Ellis.