Popular blogsMiscellaneous
Blogs with at least five reasonably popular articles on Reddit (a pretty arbitrary criteria, yeah). To find popular articles, I used https://reddit.com/domain/<blog domain>/top/?sort=top&t=all
– you can use it too if you want to add a new blog.
TODO:
- https://github.com/quchen/articles!
- https://wickstrom.tech/archive.html?
- https://typeclasses.com/news?
Also see: -
As the editor of u/HaskellWeekly, I've been compiling information about featured authors for almost a year now. It's not formatted as nicely as the Aelve Guide, but it contains nearly 300 authors. Check it out: https://airtable.com/shrp0GHpXNPXt7DnX
Popular announcements:
lucid
: Templating DSL for HTML and Lucid 2.0hindent
: A Haskell indenter and hindent 5: One style to rule them allshell-conduit
: Write shell scripts in Haskell with Conduitpath
: The path packageformatting
: Formatting in Haskell
Popular posts:
- Fast Haskell: Competing with C at parsing XML
- How Haskellers are seen and see themselves (not a technical post)
- Use the REPL, Luke
- A philosophical difference between Haskell and Lisp
- The constraint trick for instances
- My Haskell tooling wishlist
- Existentials and the heterogenous list fallacy
- The Identity monad trick
- Typeable and Data in Haskell
- Twitter waterflow problem and loeb
Announcements:
optparse-generic
: Auto-generate a command line interface from a data typedhall
: A non-Turing-complete configuration language and Dhall is now a template enginemorte
: An intermediate language for super-optimizing functional programs and The internet of codepipes
: pipes-4.0, pipes-bytestring-1.0.0, pipes-parse-1.0.0, etc.typed-spreadsheet
: Haskell-native spreadsheets and Interactive and composable charts
Miscellaneous popular posts:
- State of the Haskell ecosystem
- Explicit is better than implicit
- How to make your Haskell code more readable to non-Haskell programmers
- Worst practices should be hard
- Use Haskell for shell scripting
Introductions and explanations:
- Introductions to advanced Haskell topics
- Program imperatively using Haskell lenses – one of the most popular lens tutorials
- Compile-time memory safety using Liquid Haskell – an introduction to Liquid Haskell
- The category design pattern and The functor design pattern
- The continuation monad – an introduction to the Cont monad
- Comonads are objects – an introduction to comonads with examples
- Why free monads matter and Purify code using free monads – posts about free monads
For beginners:
Longreads:
- What I Wish I Knew When Learning Haskell – an immensely popular, small-book-length article filled with knowledge about Haskell (language itself, extensions, libraries, tools, and ideas)
- also see: A Haskell Reading List
- Implementing a JIT Compiled Language with Haskell and LLVM
- Write You a Haskell (incomplete)
- also see: A Haskell Implementation Reading List
Popular posts:
Popular posts:
- On the "higher-kinded data" pattern:
- On free monads:
- Type-Directed Code Generation
- Coercions and Roles for Dummies
Book: Thinking with Types
Popular posts:
- So you want to add a new concurrency primitive to GHC...
- What Template Haskell gets wrong and Racket gets right
- The GHC scheduler
- Parsec: “try a <|> b” considered harmful
Posts about Backpack (an advanced module system Edward has implemented):
Posts about package management:
Popular posts:
- Fixing
foldl
- Understanding the stack
- Lightweight Checked Exceptions in Haskell
- Sharing, Space Leaks, and Conduit and friends
- Efficient Amortised and Real-Time Queues in Haskell
- Implementing a minimal version of haskell-servant
- An in-depth look at
quickcheck-state-machine
Cloud Haskell:
- The New Cloud Haskell
- Communication Patterns in Cloud Haskell: part 1, part 2, part 3, part 4
-XOverloadedRecordFields
:
Cabal, Hackage, and the package ecosystem:
- How we might abolish Cabal Hell: part 1, part 2, improving the Cabal solver
- Improving Hackage security: introduction, alpha release, beta release
Pretty much everything: Haskell design patterns and best practices, announces of new libraries and projects by FPComplete engineers, tutorials, etc.
Popular announcements:
- inline-c: Call C functions from Haskell without bindings
- weigh: Measuring allocations in Haskell
- First public beta of Stack
- School of Haskell 2.0
Popular posts:
- Why is stack not cabal?
- Primitive Haskell
- Haskell Web Server in a 5MB Docker Image
- The ReaderT Design Pattern
TODO: add more posts; add new posts
Series:
- 24 Days of Hackage (2012) – a series of posts about interesting packages on Hackage
- 24 Days of Hackage (2013) – same, but a year later and about different packages
- 24 Days of GHC Extensions
Popular standalone posts:
- How I Develop with Nix
- Monad transformers, free monads, mtl, laws and a new approach
- Building an Asteroids Clone in Haskell using Netwire
- Interpreting Haskell Inside PostgreSQL With Singleton Types
Popular announcements:
Note: Conal has also written a lot of papers. They can be found on his papers page.
Miscellaneous popular posts:
- Can functional programming be liberated from the von Neumann paradigm?
- 3D rendering as functional reactive programming
- “Everything is a function” in Haskell?
On purity:
On partial values, unamb
, lub
, etc:
- Functional concurrency with unambiguous choice
- Merging partial values
- Non-strict memoization
- Exact numeric integration
On cartesian closed categories (also see his “Compiling to categories” paper):
Popular posts:
- Lens is unidiomatic Haskell
- Announcing SmallCheck-1.0
- Reasoning about space usage in Haskell
- The problem with mtl (also see the extensible effects series)
- Nested monadic loops may cause space leaks
- Generic unification
- Descending sort in Haskell
- Haskell library in a C project
Also see his Cartesian Closed Comics (comics about Haskell and programming).
News about Yesod (a web framework) mixed with posts about various other things, mostly by Greg Weber and Michael Snoyman.
Popular announcements:
Popular posts:
Announcements:
- diagrams: the announcement for version 1.0 (also see 0.2, 0.5, and 0.6)
- MonadRandom: the recent announcement for version 0.5
Popular posts:
- the Typoclassopedia
- foldr is made of monoids
- Haskell anti-pattern: incremental ad-hoc parameter abstraction
- On random generators for recursive algebraic data types:
- On combinatorial species:
- Introducing Math.Combinatorics.Species!
- Primitive species and species operations: part 1 and part 2
- Functional pearl on combinatorial species
- all posts can be found under the “species” tag
Stories of performance tuning and bug-hunting:
- Sometimes, the old ways are the best (
aeson
) - What's good for C++ is good for... Haskell!? (
text
) - A major upgrade to attoparsec: more speed, more power (
attoparsec
) - The case of the mysterious explosion in space (
text
) - Performance: yes, it’s worth looking at the small stuff (
text
) - Testing a UTF-8 decoder with vigour (
text
)
Various posts:
Don doesn't post much nowadays (apart from advertising Haskell vacancies: 1, 2, 3), but some of his old posts are still good.
- Smoking fast Haskell code using GHC’s new LLVM codegen
- Evolving faster Haskell programs and Evolving faster Haskell programs (now with LLVM!)
- Practical Haskell: scripting with types (slides)
- Self-optimizing data structures: using types to make lists faster
- Visualising the Haskell universe
- Parallel programming in Haskell: a reading list
A collective blog about various semi-advanced things (category theory, etc) by Edward Kmett, Dan Doel, and Gershom Bazerman.
Popular posts:
- Letter to a Young Haskell Enthusiast (non-technical)
- Abstracting with Applicatives
- Free Monoids in Haskell
- Mirrored Lenses – a post that led to the generalization of lenses as they are in lens today
- Free Monads for Less: part 1 – Codensity, part 2 – Yoneda, part 3 – Yielding IO
- What Constraints Entail (posts about
-XConstraintKinds
): part 1, part 2 - On the unsafety of interleaved I/O – why
unsafeInterleavedIO
is calledunsafe
Announcements:
- Profiteur: a visualiser for Haskell GHC .prof files
- Hakyll 4.0 (Hakyll is a popular static blog generator)
- WebSockets 0.8 and WebSockets 0.11
Popular posts:
Announcements:
- record: Announcing the first class records library (one of the top /r/haskell posts overall)
- compound-types: First-class sums and products
- refined: Announcing the refinement types library
- stm-containers: Announcing the "stm-containers" library
Popular posts:
Haskell for Readers: "This workshop is uniquely tailored to those who need to read, rather than write Haskell code: auditors, scientists, managers, testers etc."
Popular posts:
- Why prove programs equivalent when your compiler can do that for you?
- On taking the last n elements of a list
- Showcasing Applicative
- Finding bugs in Haskell code by proving it
Popular announcements:
Popular posts:
- Three Layer Haskell Cake
- Clean Alternatives with MaybeT
- Maybe? Use a type parameter!
- ghcid for the win!
TODO: more?
TODO.
He has also written a lot of posts for Well-Typed.
Popular posts:
- On lenses:
- Glassery – a huge post on the profunctor lenses hierarchy
- Indexed profunctor optics – continuation
- Affine traversals
- Mutated lenses
- Linear thoughts – a post about linear types
Alternative
exercise
Long-form tutorials:
Popular posts:
- Smart constructors that cannot fail
- Free monad considered harmful
- Migrating text-metrics to pure Haskell
- Short
ByteString
andText
- Existential quantification
Popular announcements:
Popular posts:
Announcements:
co-log
: co-log: Composable Contravariant Combinatorial Comonadic Configurable Convenient Logging (by Dmitrii Kovanikov)membrain
: Insane in the Membrain (by Veronika Romashkina)tomland
: Bidirectional TOML serialization (by Dmitrii Kovanikov)typerep-map
: typerep-map step by step (by Veronika Romashkina)summoner
: Modern tool for scaffolding Haskell projects (by Veronika Romashkina)summoner-tui
: TUI for the Summoner scaffolding tool (by Veronika Romashkina)smuggler
: GHC Source pluging for automatically removing unused imports (by Dmitrii Kovanikov)life-sync
: CLI tool for managing personal configs via GitHub (by Dmitrii Kovanikov)
Popular posts:
- Picnic: put containers into a backpack (by Dmitrii Kovanikov)
- State monad comes to help sequential pattern matching (by Dmitrii Kovanikov)
Guides:
- Haskell Style Guide
- Haskell: Build Tools (by Dmitrii Kovanikov)
- Dhall to HLint: Using Dhall to generate HLint rules (by Veronika Romashkina)