Good Haskell source to read and learn from
HaskellCoding StyleOpen SourceHaskell Problem Overview
What are some open source programs that use Haskell and can be considered to be good quality modern Haskell? The larger the code base, the better.
I want to learn from their source code. I feel I'm past the point of learning from small code examples, which are often to esoteric and small-world. I want to see how code is structured, how monads interact when you have a lot of things going on (logging, I/O, configuration, etc.).
Haskell Solutions
Solution 1 - Haskell
What I recommend.
Read code by people from different grad schools in the 1990s
- Oxford style
- Glasgow style or (this)
- Chalmers style (or this)
- York style
- Portland style or OGI style (or this)
- Utrecht style
- Yale style
- Special case: CMU/Elliott
Read code by the old masters certain people (incomplete list)
- Marlow; Paterson; Peyton Jones; Gill; Launchbury; Hughes; Wadler; Bird; Claessen; Jones; Tolmach; Sheard; Swiestra; Augustsson; Runciman; Wallace; Thompson; Hinze; Gibbons; Leijen; Hudak; Elliott; Finne; Chakravarty; and
- Anyone who has written a functional pearl.
Note that people like me, Coutts, Mitchell, O'Sullivan, Lynagh, etc. learned our Haskell style from these guys.
Read some applications
- Read the GHC base library source
- Read the xmonad source
Solution 2 - Haskell
XMonad is an open source tiling window manager, originally loosely modeled on dwm. There are a lot of extensions, of varying quality, but the core is compact and well organized.
Solution 3 - Haskell
-
Haskell: Functional Programming with Types
Joeri van Eekelen, et al. | Wikibooks Published in 2007, 290 pages
-
Learn You a Haskell for Great Good!
Miran Lipovaca | LearnYouaHaskell.com Published in 2010, 176 pages
-
B. O'Sullivan, J. Goerzen, D. Stewart | O'Reilly Media, Inc. Published in 2008, 710 pages
-
The Haskell Road to Logic, Maths and Programming
Kees Doets, Jan van Eijck | College Publications Published in 2004, 449 pages
Solution 4 - Haskell
Darcs is an open source, source code management system. It should give you a nice idea for Haskell.
Solution 5 - Haskell
The source code to the Yesod Web Platform is fairly complex, well thought out, and well written. You will learn a lot from the persistence library that comes with it as well.
Solution 6 - Haskell
If you care about Web-programming I would recommend Chris Done's lpaste project.
Solution 7 - Haskell
GHC is probably the biggest or one of the biggest projects written in Haskell that is open source. When I say biggest, I do not just mean in terms of source size, but also impact, use, innovation, robustness. GHC can teach you a lot about writing Haskell.