# Haskell

Haskell Guide, this video and course are nice intros. Haskell Weekly is nice newsletter to stay up to date. Introduction to Haskell IO is a good entry to show what Haskell is about.

Haskell for Working Programmers & Write You a Haskell are great reads.

Production Haskell & Haskell in Depth seem like nice advanced Haskell books.

It'd be interesting to have a functional language like Haskell but without gc.

## OSS Haskell Tools

- Wordle.hs - Play Wordle on the command line.

## Notes

- Kinds are the types of types. Typeclasses are more like predicates or relations between types.
- The fewer type parameters in a class, the better. Can you turn any into associated types? Can you split the class into two classes? Can you hive off some of the parameters into a superclass?
- Don't worry about strictness until it's time to optimize.
- Intuition about optimization tends to be bad. Before profiling, limit yourself to reasoning about complexity classes.
- Don't judge haskell based on these definitions. They appear strange and crazy, but when you actually do stuff most of them turn out to be quite intuitive.
- Advice is to ignore these things. Don't read a million monad tutorials. Just play around and code something, you don't have to understand the monad-definition before you can use the do-notation. Try to ignore them. After a while you get an intuition and then the definitions will make sense.

- Objects are a way to generalize reusability and composability (Interheritance, Encapsulation, Polymorphism) Haskell goes down a different route of reusability and composability that draws more from math than from object models. The real benefit to learning haskell is learning to think in that way rather than an object oriented or imperative way.
- In Haskell, you could say that the type system is a syntactic method for classifying program phrases according to the kinds of values they compute.
- Because Haskell (usually) only evaluates into WHNF if you produce data constructors while doing the infinite recursion you can use infinite recursion.
- If, while forcing a thunk, you see the same thunk being forced again, you can report infinite recursion.
- GADTs might give you a radically simple way to express things that rudimentary type systems like Go's cant express.
- Haskell's type system lets you express a lot of domain specific invariants and logic in a statically verifiable manner.
- Go is as type safe as haskell, the language doesn't allow invalid operations on data types. What people mean with "weak" is often expressivity. Go's enums sucks and it doesn't have ADTs or generic.
- When people talk about strong type system, they usually just mean expressivity, not safety.

- Basic ideas that Haskell encourages
- Purity
- Well typed programs
- Separation of IO and logic
- Immutability
- Data is "transformed" using functions and function compositions

- Haskell does not have return or statements, only expressions.
- It has do-notation, which resembles statements if you don’t squint too hard. But Haskell has very few syntactic elements, so there is no need to worry about disambiguating between e.g. a; [b].c and a[b].c like there is in Rust.

- All values are immutable and all functions are pure in Haskell, with the one exception of I/O monads.
- Cabal works better with Nix and it's one less abstraction layer to debug
- Haskell really shifted my point of view on software during my formative years; it made me shift from focusing on telling the computer to do things to modelling the world inside the computer.

## Links

- Edward Kmett - Why Haskell? (2021)
- A Gentle Introduction to Haskell (2000)
- CIS 194: Introduction to Haskell (2016) (Code)
- Haskell Programming Book
- Learn Haskell Path
- Thinking with Types by Sandy Maguire (Notes)
- How I Learned to Stop Worrying and Love the Type System
- Simon Peyton Jones - Closer to Nirvana
- Curry-Howard-Lambek correspondence
- Theoretical foundations
- FP course
- Russian Haskell book FAQ
- An opinionated guide to Haskell in 2018
- Please Don't Learn Category Theory to Learn Haskell
- How do you guys get anything done?
- If Haskell is so great, why hasn't it taken over the world? And the curious case of Go.
- Haskell IDE Engine - Engine for haskell ide-integration.
- Of Ideas and men
- What is the track to mastering Haskell and where would it lead me professionally?
- Nix and Haskell in production
- Revisiting Combinators by Edward Kmett
- Haskell Programming From First Principles - Follow-up Resources (Solutions)
- Quchen's articles
- Haskell Design Patterns?
- Haskell companies - Curated list of companies using Haskell in industry.
- Snack - Nix-based incremental build tool for Haskell projects.
- What exactly makes the Haskell type system so revered (vs say, Java)?
- HN: Introducing Haskell to a Company
- Haskell's kind system - a primer
- Fused effects - Fast, flexible, fused effect system for Haskell.
- Examples of Dependently-typed programs in Haskell
- haskell-lsp - Haskell library for the Microsoft Language Server Protocol.
- Lambda World 2018 - Opening Keynote by Edward Kmett
- Haskell Source Extensions - Package for handling and manipulating Haskell source code.
- Haskeleton: a Haskell project skeleton
- Haskell ITMO course at CTDHaskell ITMO course at CTD
- Google's Haskell training: 101 and 102
- brittany - Haskell source code formatter.
- Stack - Cross-platform program for developing Haskell projects.
- List of Foundational Haskell Papers
- hpack - Modern format for Haskell packages.
- Haskell Code Explorer - Web application for exploring and understanding Haskell codebases.
- static-haskell-nix - Easily build most Haskell programs into fully static Linux executables.
- Real World Haskell
- Real World Haskell updated to 2019
- Higher-order Type-level Programming in Haskell (2019) (HN)
- Why Haskell?
- Property-Based Testing in a Screencast Editor: Introduction (2019)
- Haskell Fan Site (HN)
- An opinionated beginner's guide to Haskell in mid 2019
- Why I (as of June 22 2019) think Haskell is the best general purpose language
- Ormolu - Formatter for Haskell source code. (Announcement article) (Ormolu WASM)
- Fourmolu - Formatter for Haskell source code. Fork of Ormolu, with the intention to continue to merge upstream improvements.
- Koka - Function-oriented language with effect inference.
- Write You a Haskell - Building a modern functional compiler from first principles. (Code)
- Write You a Haskell 2 - Continuation of Steven Diehl's Write You a Haskell.
- Verification with Refinement Types
- Hoogle - Haskell API search engine.
- Haskell Papers
- Simon Peyton Jones how GHC type inference engine actually works (2019)
- Chris Penner - Comonads by Example (2019)
- Haskell Disappointment (2019) (Reddit)
- MuniHac 2019: Making a Haskell IDE (2019) (Slides)
- ghcide - Library for building Haskell IDE tooling.
- llvm-hs - Haskell bindings for LLVM.
- Releaser - Automation of Haskell package release process.
- CodeWorld - Educational computer programming environment using Haskell.
- Summoner - Tool for scaffolding batteries-included production-level Haskell projects. (Web)
- "Building Haskell Programs with Fused Effects" by Patrick Thomson (2019)
- Haste Compiler - GHC-based Haskell to JavaScript compiler.
- What is Good About Haskell? (2019) (HN)
- Learning Haskell is no harder than learning any other programming language (2019) (HN) (Reddit)
- Haskell eXchange 2019 talks
- Implementation of the Elm Architecture in Haskell with parallel side effects
- Haskell in Production (2019) (HN)
- Beating Decades Of Optimized C With 80 Lines Of Haskell (2019) (HN) (Lobsters)
- Servant's type-level domain specific language (2019)
- Solutions to the Haskell Book exercises (Solutions 2)
- Runtime Support for Multicore Haskell
- GHC exercises - Little course to learn about some of the more obscure GHC extensions.
- Typing the technical interview (2017) (HN)
- Aelve Guide | Haskell - Wiki-like guide to Haskell ecosystem and community.
- rien - Predictable Haskell development environments with Cabal and Nix.
- Confessions of a Used Programming Language Salesman Getting the Masses Hooked on Haskell
- Lambda World 2019 - Painless software development with Haskell - Paweł Szulc
- Stay Tuned: Best Haskell Sources to Follow (2019)
- A dead-simple web stack in Haskell (2019) (HN)
- simple-twitter - Bare-bones Twitter clone implemented in a single file of Haskell deployed with Nix. (HN) (Slides)
- Boring Haskell Manifesto (2019)
- HaskellR - Full power of R in Haskell.
- A list of Haskell articles on good design, good testing (2019) (PDF)
- Is Haskell the functional end station or are there heavier drugs? (2019)
- Dependently Typed Haskell in Industry (Experience Report) (2019)
- Write Junior Code - A plea to Haskellers everywhere (2019) (Lobsters)
- The road to proficient Haskell (2020)
- Try the advanced stuff (2020)
- Design Patterns in Haskell (2010)
- Courting Haskell (2020)
- Programming in Haskell book
- Static types are dangerously interesting (Lobsters)
- Let's Get Dangerous (Reddit)
- Functional Programming in Haskell (Stepik course notes) (2020)
- Haskell Problems For a New Decade (2020) (HN)
- Haskell performance checklist
- Setting up a Haskell development environment in minutes in Visual Studio Code (2020) (Lobsters)
- Lessons learned from writing ShellCheck, GitHub’s now most starred Haskell project (2020) (HN)
- What I wish I knew when learning Haskell (Code) (HN)
- Awesome Haskell Deep Learning
- Haskell Profile Highlight - Color highlighting for Haskell profiling information.
- Story told by Type Errors
- API design notes (Video)
- Retrie - Powerful, easy-to-use codemodding tool for Haskell.
- Learn You a Haskell for Great Good
- Learn You a Haskell for Great Good! (open-source) (Code)
- Lessons in Managing Haskell Memory (2020)
- Building a web app with functional programming - Haskell (2020)
- haskell-language-server - Integration point for ghcide and haskell-ide-engine. One IDE to rule them all.
- Why Haskell Matters
- Fast Fibonacci numbers using Monoids (2020) (HN)
- Permissive, then restrictive: learning how to design Haskell programs (2020)
- 10 Reasons to Use Haskell (2020) (Lobsters)
- Haskell Study Plan
- Examples of Incorrect Abstractions in Other Languages (2020) (Lobsters)
- Haskell Platform - Combination of the GHC compiler and core libraries, plus additional tools and libraries covering a range of common programming tasks.
- Stan - Haskell static analyser. (Talk)
- Software Design and Architecture in Haskell - Structured set of materials. How to build real-world applications in Haskell. (Other resources that are good, but not necessarry about Software Design)
- The Pain Points of Haskell: A Practical Summary (2020) (HN)
- nix-hs - Thin layer over the existing Haskell infrastructure in nixpkgs which adds all of the tools needed for interactive development.
- Haskell for Imperative Programmers (2020)
- Haskell Zettelkasten - Seeks to be a comprehensive community-maintained knowledge-base for Haskell. (Code)
- Opening Ceremony & "Languages all the way down" by Rob Rix - ZuriHac 2020 (Code)
- ZuriHac 2020
- Smuggler2 - Minimise haskell imports, make exports explicit.
- Alexis King - “Effects for Less” (2020)
- A Generic Journey - Design Decisions about datatype-generic programming in Haskell (2020)
- Linear types are merged in GHC (2020) (Proposal) (Lobsters) (HN) (Drafts, notes)
- GHC Proposals
- Fundamental Haskell notes (Code)
- Haskell for a New Decade (HN) (Talk) (Lobsters)
- IHP - Modern batteries-included Web Framework, built on top of Haskell and Nix. (HN) (Code) (IHP Live Reloading: How it works) (Article)
- The power of IO in Haskell (2020)
- JSON Parser 100% From Scratch in Haskell (only 111 lines) (2019)
- Learn Haskell in a couple of tweets (2020)
- Kindness for Mean Girls: Primer on the cruel, tacit laws of type-level programming in Haskell (2020)
- Deploying statically-linked Haskell to Lambda (2020)
- Retrie - Powerful, easy-to-use codemodding tool for Haskell. (Article)
- cabal-edit - Utility for managing Hackage dependencies from the command line.
- The Haskell Elephant in the Room (HN)
- How Haskell threads block (2020)
- Time Traveling In Haskell: How It Works And How To Use It (2020)
- Learn Haskell Fast and Hard
- A philosophical difference between Haskell and Lisp (2015) (HN)
- Haskell Implementors’ Workshop papers/talks (2020)
- Designing a React Hooks style TUI lib from scratch (2020)
- hinc - Haskell In New Clothes. Braces-and-parens syntax for your favorite language. (HN) (Code) (Why)
- Simon Peyton Jones - Elastic sheet-defined functions (2020)
- Haskell Love 2020 talks (Web) (Day 1) (Day 2)
- Haskel / Nix / hie / Stack template
- ruHaskell - Russian Haskell community. (Code)
- Let’s write a Haskell Language Server plugin
- Haskell mini-patterns handbook (Reddit) (HN)
- Describing Microservices using Modern Haskell (2020)
- Haskell MOOC
- Design patterns in Haskell
- Building network actors with Node Framework
- Software Design Showcase Projects in Haskell
- Haskeller Competency Matrix
- What killed Haskell, could kill Rust, too (2020) (HN) (Lobsters)
- Haskell's Children (2020) (HN) (Reddit)
- Understanding Haskell IO
- Haskell Vedanta
- JSON Parsing from Scratch in Haskell (2020)
- Fast Sudoku Solver in Haskell (2018)
- Learn Haskell basics in 4 pull requests (Web)
- Generalizing 'jq' and Traversal Systems using optics and standard monads (2020) (HN)
- apply-refact - Refactor Haskell source files.
- Delivering with Haskell (2020) - Advice to teams that are interested in using Haskell, for the first time, to ship a project. (Lobsters)
- Towards Tactic Metaprogramming in Haskell (2020) (HN)
- Haskell: Monads. A 5-minute introduction (2020)
- Channable - Bottlenecked on Haskell's text library (2020)
- LiquidHaskell - Liquid Types For Haskell.
- Why Fintech Companies Use Haskell (2020)
- cake-slayer - Architecture of Haskell backend applications. (Web)
- Haskell Playground - Number of partially finished math-related projects in Haskell.
- Call stacks aren't really call stacks (2020)
- Statically safe dynamic typing a la Python (2019)
- Refined types + dependent types = ♥️
- Intro to type-level programming in Haskell (2020)
- Haskell Fan Site
- Haskell: The Bad Parts (2020) (Reddit)
- Haskell: The Bad Parts, part 2 (2020) (Lobsters)
- Haskell exercises
- Whole Haskell is Best Haskell (2020) (Reddit)
- Haskell Foundation (New Chapter For Haskell: The Haskell Foundation) (Reddit AMA) (Announcement Talk) (Website Code) (Web Code)
- Real World Haskell (HN)
- Haskell via Sokoban
- Consider Haskell (2020)
- Learning Haskell by building a static blog generator (Code) (HN)
- Haskell Proposal: Simplify Deriving (2020)
- Pure destination-passing style in Linear Haskell (2020) (HN)
- Haskell IDE Engine for Nix - Provides cached Nix builds for Haskell IDE Engine.
- How I learned Haskell (2017)
- Haskell Weekly - Publishes curated news about the Haskell programming language. (Code)
- Haddock - Haskell Documentation Tool. (Code)
- Haskell Learning Resources - Opinionated list of resources for learning Haskell, from absolute (programming) beginner level to advanced.
- Haskell memoization and evaluation model (2020)
- izuna - Enhances Haskell code review for Github.
- Foo to Bar: Naming Conventions in Haskell (2020)
- Try.do for recoverable errors in Haskell (2020)
- Learnings from Solving Advent of Code 2020 in Haskell (Reddit)
- Superpowered keyword args in Haskell (2020)
- Haskell doesn't have macros (2020)
- Haskell Tips Twitter - Tips, tricks and hacks.
- ghc-musl - Docker image with GHC+musl for static executables.
- GHC 9.0, supporting linear types (2020) (HN)
- Verifying the Titular Properties of a Leftist Heap (2019)
- Artyom's Haskell toolbox — a long list of tools/libraries I use (Reddit)
- Lessons Learned From A Year Of Writing Haskell (2021)
- The Evolution of a Haskell Programmer (2001) (HN)
- graphmod - Utility for displaying the module dependencies of Haskell programs.
- Haskell is a Bad Programming Language (2020) (HN) (Lobsters)
- Next-gen Haskell Compilation Techniques with Csaba Hruska (2021)
- Haskell In Haskell - Trying to write an understandable implementation of Haskell, in Haskell.
- Why Haskell is our first choice for building production software systems (2021) (HN)
- Maybe Considered Harmful (2021)
- Teaching Haskell means teaching important concepts (2021)
- Haskell Code Spot - Visual tool to spot odd runtime behavior of Haskell programs.
- ghc.nix - Nix (shell) expression for working on GHC.
- Glasgow Haskell Compiler (GHC) - State-of-the-art, open source, compiler and interactive environment for the functional language Haskell. (Code)
- A Tour of Go in Haskell - How to write the concurrency section of A Tour of Go in Haskell. (Code)
- Building DSLs in Haskell - Simple playground for DSLs in Haskell.
- Parsing With Haskell Parser Combinators (Code)
- GHC 9.0 Reading Guide
- Haskell for all: Folds are constructor substitution (2021)
- Haskell Tutorial and Cookbook
- Reflections On Using Haskell For My Startup (2021) (HN) (Lobsters)
- Type inference for Haskell
- Why Learn Haskell? (HN)
- Haskell Executable Sizes (2021) (Lobsters)
- Emily Pillmore – Hulk SMASH: re-imagining the Maybe-monad and its design space (2020)
- Prune Juice - Prune unused Haskell dependencies. (Article)
- Nixkell - Get your Haskell projects up and running with no fuss using Nix.
- Supercharge your handles using phantom types (2021)
- ghc-lib - GHC API, decoupled from GHC versions.
- Algebraic Graphs with Class (2017) (Lobsters)
- Haskell in Depth (2021) (Code)
- An introduction to typeclass metaprogramming (2021)
- Combining folds using semigroups (2021)
- Easy Haskell Language Server Nix
- Haskell's Dangerous Functions - Documentation about Haskell's dangerous functions and a hlint config file to forbid them.
- Haskell Tool Stack - Project templates for stack new.
- GHC Whole Program Compiler and External STG IR tooling
- Z.Haskell - Fast/Concise/Modern Haskell Engineering Toolkits. (GitHub) (HN)
- The Benefits of Learning Haskell (2021) (Lobsters)
- Products and sums, named and anonymous (2021)
- Continued Fractions in Haskell (2021) (HN)
- Type-guided development and garden paths (2021)
- GADTs for Dummies (HN)
- Simple Haskell Handbook - Project-driven approach to practical Haskell development.
- Haskell challenges - Code challenges to solve with Haskell.
- Getting started with Haskell projects using Scotty (2021)
- Haskell project template using Nix + Flakes + VSCode (HLS)
- Using dependent types to write proofs in Haskell (2021)
- Objects (2021)
- The Fixed Point: Recursion, Laziness, and Haskell's fix function (2021)
- Understanding Haskell Features Through Their Desugaring (2020)
- Collection of Notes on GHC (Code)
- Wingman for Haskell - Focus on the important stuff; delegate the rest. (HN)
- Cabal2nix - Generate Nix build instructions from a Cabal file.
- Past and Present of Haskell: Interview with Simon Peyton Jones (2021)
- Introduction to GUI programming in Haskell – Vladislav Zavialov (2020)
- Typeclassopedia (Code)
- Haskell Social Fediverse Nodes
- Calling C++ from Haskell (2021)
- Supercharge your handles using phantom types (2021)
- Combining folds using semigroups (2021)
- Bridging a typed and an untyped world (2021)
- Composable Data Validation with Haskell (2021)
- Extensible Effects in the van Laarhoven Free Monad (2016) (HN)
- fromMaybe is Just a fold (2021)
- time-ghc-modules - Analyzes how long it takes GHC to compile your Haskell modules, broken down by phase.
- Haskell for the Elm Enthusiast (2021) (HN)
- A Brief Intro to Monad Transformers (2021)
- Namespaced De Bruijn indices (2021)
- Quick and dirty backpropagation in Haskell (2021)
- "Propositions as Types" by Philip Wadler (2015) (Lobsters)
- Distributed Systems in Haskell (HN)
- HIW 2021 - YouTube
- An Introduction to Type Level Programming (2021) (HN)
- Syd's rules for sustainable Haskell
- HyperHaskell - Strongly hyped Haskell interpreter.
- The Incomplete Guide to Lazy Evaluation (in Haskell)
- The Operational Monad Tutorial
- Haskell Wiki
- Nested strict data in Haskell (Lobsters)
- H2 Wiki - Wiki dedicated to Haskell, styled in homage to The C2 Wiki.
- A Short Overview of Typed Template Haskell (2021)
- Thunks, Sharing, Laziness: The Haskell Heap Visualized – Joachim Breitner (2021)
- Haskdogs - Generate tags file for Haskell project and its nearest deps. (Reddit)
- tree-sitter-haskell - Haskell grammar for tree-sitter.
- Induction without core-size blow-up (a.k.a. Large records: anonymous edition) (2021)
- Tuning Haskell RTS for Kubernetes (2021)
- Type-checking plugins, Part I: Why write a type-checking plugin? (2021)
- Ode to a Streaming ByteString Or: Lazy I/O without Shooting Yourself in the Foot (2021) (HN)
- Dont Worry Be Happy (2021) (Lobsters)
- Best practices on how to be efficient with Haskell in production
- Explanation of eliminating left recursion in Haskell parsers
- Using Haskell for scientific computing (2021)
- Why Co–Star Uses Haskell (HN)
- Simple, type-safe string formatting in Haskell (2021)
- Hard things to figure out in Haskell (2021)
- Löb and möb: strange loops in Haskell (Reddit)
- All about
`deriving`

in GHC (2021) - Applying File Changes with fix and GADTs (2021)
- A Beginner's Guide to Haskell
- A Beginner's Guide to Haskell and its Ecosystem (2021)
- H-99: Ninety-Nine Haskell Problems (Code)
- Median Heaps in Haskell (2021)
- Solving a few Leetcode questions in Haskell (2021)
- Learn Haskell, without the bullshit
- The Varieties of the Haskelling Experience (2021)
- What's current best practice for starting a project with Haskell? (2021)
- Haskell's Type System Standing Alone: an unusual programming language (Reddit)
- Parsing Layout, or: Haskell's Syntax is a Mess (2021)
- Using Haskell as my shell (2021)
- Demystifying the state monad
- Functional in the wild: typeclasses
- Getting acquainted with Lens (2020)
- Type-level sharing in Haskell, now (2021) (Reddit)
- Haskell Beginners 2022 Course (Exercises) (Plan) (Slides) (Videos)
- Applying Type-Level and Generic Programming in Haskell (2018)
- Embedding effect systems in Haskell (2014)
- Policeman - Haskell PVP adviser.
- Parser Combinators in Haskell (2021) (HN)
- Gil Mizrahi's Talks/Slides on Haskell
- Advent of Haskell: Denotational Design
- Jupyter adaptation of Learn You a Haskell for Great Good
- Nix builds of Haskell Language Server
- CS240H: Functional Systems in Haskell (2016)
- Halive - Live recompiler for Haskell.
- Software Development Languages: Haskell (HN)
- Introduction to Free Monads (2022)
- What do we actually need to know to be fluent in Haskell? (2022)
- Haskell for the Elm Enthusiast (2021)
- Haskell error messages: come on (2022) (HN)
- The Unreasonable Effectiveness of Haskell (2022) (Lobsters)
- Asynchronous Exceptions in Practice (2017)
- The Voids Of Haskell (Lobsters)
- Zürich Friends of Haskell
- ZuriHac 2022 (Workshop) (Videos)
- About that Reader trick (2022)
- Failing in Haskell (2022) (HN)
- Lambda Diagrams - Animations of lambda term reduction sequences.
- Ask HN: Why would anyone choose Haskell to develop applications? (2022)
- What is IO monad? (HN)
- 15 Resources to Help You Learn Haskell in 2022
- Haskell Foundation Stability Working Group
- Thoughts on bootstrapping GHC (2018)
- Filtering Unique Items from Heterogeneous Lists at Compile Time (2022)
- Haskell Adventures: digging into the declarative approach (2022) (Reddit)
- Algebraic Data Types in Haskell (2022) (HN)
- Great Haskell code bases to study (2022)
- Functional Programming for Physics Geeks (2022) (Reddit)
- More thoughts on the Expression Problem in Haskell (2018)
- GHCJS - Haskell to JavaScript compiler that uses the GHC API.
- Haskell.org Website Code
- From Partitions to Wordle - Type Safety with Phantom Types (2022)
- Categorifier - Defining novel interpretations of Haskell programs.
- Applied Haskell Syllabus
- stylish-haskell - Haskell code prettifier.
- Generalizing Folds in Haskell (2022)
- When Type Annotations Are Code Too (2022) (Reddit)
- So Long Surrogates: How We Moved to UTF-8 in Haskell (2022) (HN)
- An opinionated beginner's guide to Haskell in mid-2019
- 10 Commandments: Compiler in Haskell Edition (2018)
- Failing in Haskell (2022)
- Haskell, Lua, and Fennel (2022)
- Companies That Use Haskell in Production (2022) (HN)
- Introduction to Haskell IO (2013)
- Modularizing GHC (2022) (Reddit) (HN)
- Leksah - Haskell IDE. (Web)
- Haskell for Working Programmers
- Profiteur - Visualizer for Haskell (GHC) prof files. (Improving performance of your Haskell code with profiteur)
- Existential optics (2022)
- Haskell on a Shared-Memory Multiprocessor (2005)
- Model Checking in Haskell, Part 1: Transition Systems and Invariants (2022)
- How to lower an IR? (2022)
- Resources to make FP in Haskell click (2022)
- Direct Reflection for Free - Using Data and Typeable to get a direct reflection system for free, when we're implementing a toy language in Haskell.
- Smooth, non-invasive Haskell Stack and Nix shell integration (2022)
- Generate web forms from pure functions (2022)
- Unboxed types and primitive operations (Lobsters)
- Haskell WATs - Collection of Haskell's WATs.
- Diving into GCC Internals (HN)
- Beginner's guide to Haskell optimization
- MHC - Minimal Haskell Compiler.
- Awesome Learning Haskell
- Variance and Subtyping (2021)
- The list of monoids pattern (2022)
- Incremental builds for Haskell with Bazel (2022) (HN)
- Lenses (HN)
- defaultable-map: An Applicative wrapper for Maps (2022) (Lobsters)
- Parsing with Haskell (2022) (HN)
- Quine Central in Haskell
- The joys and perils of beating C with Haskell (2020)
- Should Haskell be rebranded away from "Pure Functional Programming" (2022)
- Imperial College London final Haskell exam solutions
- Magical Haskell Book (Lobsters)
- Haskell Bookcamp Book (2022) (Tweet)
- Haskell Foundation Tech Proposals
- Monad Confusion and the Blurry Line Between Data and Computation (2022) (HN)
- Avoiding space leaks at all costs (2022)
- Functions Types, Currying, Partial application, Higher-order functions (2022)
- How to make a Haskell program 5x faster with 16 lines of code (2022)
- Easy JSON in Haskell (2022)
- Easy incremental Haskell CI builds with GHC 9.4 (2022)
- Monad confusion and the blurry line between data and computation (2022)
- 47 Degrees Academy: Haskell Courses
- GHC Linear Synthesis Plugin - Synthesizing Haskell programs from Linear Types using bottom-up proof search in linear logic with focusing.
- State of GHC (2022)
- Haskell Playground (2022)
- Interview with Simon Peyton Jones (2022)
- What does "isomorphic" mean (in Haskell)? (2022)
- The Lambda Cube in Haskell: what construct do I need for this polymorphism? (2022) (Tweet)
- A nub in the haystack (2022)
- Haskell Error Index - Community-driven web site for improving the documentation of Haskell tooling. (Announce)
- ghc-nix - Exploring the options for incremental Haskell builds using Nix.
- Data validation in Haskell with newtypes, smart constructors, and aeson (2022)
- Binary Packet Parsing (2022)
- Monday Morning Haskell (YouTube)
- Break Gently with Pattern Synonyms (2022)
- Spooky Masks and Async Exceptions (2022)
- Haskell rules for Bazel
- Improving the experience of JSON in Haskell with autodocodec and bifunctors (2022)
- Staged programming with typeclasses (2022)
- Haskell Notebooks with HLS and VS Code
- FizzBuzz in Haskell (2014) (HN)
- WebAssembly backend merged into GHC (2022)
- Blog: Haskell in Production
- Production Haskell: Succeeding in Industry with Haskell (2022)
- 3 ways to reduce sharing in Haskell (2022)
- Tutorial:
`forall`

in Haskell (2021) (Lobsters) - A* Algorithm in Haskell (2022)
- Profiling Memory Usage With eventlog2html and ghc-debug
- Haskell-Lexer - Fully compliant Haskell 98 lexer.
- Haskell Lens Tutorial by Exercises (2019)
- Looping Through Functional Loops (2022)
- Building terminal application in Haskell
- Rebecca Skinner's presentations
- Creating a Delta Lake in Haskell with Sparkle (2022)
- Abhinav’s Haskell articles
- What do Haskellers think about Rust? (2022)
- Beginner-friendly introduction to Free Monads (2022)
- JavaScript backend merged into GHC (2022) (Code)
- An Introduction to Haskell (Andres Löh) (2022)
- Probability Monads from scratch in 100 lines of Haskell (2022)
- Nixpkgs support for incremental Haskell builds (2022)
- Haskell Docker Official Images
- Making GHC faster at emitting code (2022)
- Why a GHC Whole Program Compiler Mode Would Be Useful (Csaba Hruska) (2022)
- Competitive programming in Haskell: better binary search (2023) (HN)
- Lysxia - From delimited continuations to algebraic effects in Haskell (2023)
- Abusing Constraints for Automatic Documentation (2023)
- Parallel streaming in Haskell: Part 1 - Fast efficient fun (2023)
- Haskell FFI Tutorial
- A dancing space leak (2023)
- Get Programming with Haskell (2018)
- Haskell Guide (Code)
- Space leaks exploration in Haskell (Lobsters)
- Haskell for Elm developers: giving names to stuff (Part 1 - Functors) (2023)
- Pair Programming with ChatGPT & Haskell (2023)
- Linear Constraints: the problem with O(1) freeze (2023)
- Everything you never wanted to know about Applicative laws and more
- Haskell Playground
- Haskell Tiny Game Jam
- Rust vs. Haskell (2023) (HN)
- Example to illustrate how to set up incremental Haskell Nix builds
- Hurry - Build tool for Haskell applications that's fast and easy to use.
- Optimizing Haskell Code for Runtime Verification (2023)
- Haskell memes (2023)
- Squeezing a sokoban game into 10 lines of code (2023) (Lobsters)
- Haskell/GHC symbol search cheatsheet
- Illustrated document about GHC
- Haskell lazy evaluation illustrated
- halfsp - Haskell language server that doesn't do much, and does it faster than HLS.
- Haskell Playground (Code) (Release)
- Haskell for Elm developers: giving names to stuff (Part 3 - Monads) (2023)
- Hierarchical Free Monads: The Most Developed Approach In Haskell
- Three Layer - Architecture of Haskell web applications.
- Haskell on Fastly - Running Haskell via WebAssembly on Fastly.
- Embedding Functional Logic Programming in Haskell via a Compiler Plugin (2023)
- One does not simply use GHCup on macOS M1 (2023)
- Algebraic Path Finding (2023)