Effective Haskell (Pragmatic Bookshelf)
Latest Threads About This Book
‘PolyKinds GHC2021’ (page xx, line 12) is a duplicate entry. See last line on page xix.
(Book version P1.0)
New
@RebeccaSkinner
Both module statements in the code examples on pp. xvii and xviii in the Introduction (“Following Along with Example Cod...
New
@RebeccaSkinner
On page 198, when phantom types are introduced, when listing other changes to the code example at hand, also this necess...
New
@RebeccaSkinner
The book seems to be missing an import statement like
λ import HaskellBook.Examples.Introduction.CreatingModules (Name ...
New
the (<>) operator would get passed to the function show instead of
the string we get back when we say show 1.
I think it should ...
New
Missing out an i in associativity — associatvity.
New
@RebeccaSkinner
On p.61 in Chapter 2, the following is described as finding “the sum of the first ten odd numbers”:
λ (foldr (+) 0 . fi...
New
Title: Effective Haskell - Kindle Edition
Chapter: 1 Section: Precedence, Operators, and Fixity
In the first expression, ((((((add add)...
New
@RebeccaSkinner
Currently, it is:
sumOfUniques n = foldr (add n) (additiveIdentity n) . unique n
It should be:
sumOfUniques n = ...
New
@RebeccaSkinner
At the bottom of page 31 when let is added to the example greeting I cannot get the example to work. I’ve tried rechecki...
New
Effective Haskell:Chapter 13 (B9 - PDF version) - infinite loop when running the ClassyArchiver code
Refer to pages 508-511
I get an infinite loop when running the original parseArchive function, after adding a variable called "archiveD...
New
I’m hopeful for someone that could explain what GHCI does to differentiate an IO action returning a value that has a Show instance versus...
New
@RebeccaSkinner
Chapter 12 starts with the code for the File Archive builder from the bottom of p.438 to p.440.
If the intention was to...
New
@rebeccaskinner
On p.386, we have the final version of directorySummaryWithMetrics.
When running the code, we see the histogram results...
New
@RebeccaSkinner
Making it easier for anyone (including you, in the future) who
wants to use your modulee to do so
New
@RebeccaSkinner
Thanks you for this beautiful book.
Chapter 8 - p.317 3rd paragraph from the bottom
If you build your application and ...
New
I found some typos in the ‘RecordWildCards’ info box:
"Simply enabling this extension exten-
sion shouldn’t break any existing code, ho...
New
Found a minor thing:
7th line of the page says:
“The value of fibs is list with two hard-coded values,…”
This should probably be:
“Th...
New
Under “Building a Basic Metrics System with IORefs”, have created a sample file with the code snippets from page 379-383 as follows:
mo...
New
Effective Haskell: B9.0 pdf, page 24
3rd paragraph: “…and we ndeclare it…”.
“declare” is probably meant, unless I’m missing some jargon.
New
@RebeccaSkinner
The function signature for radsToDegrees includes a type signature, even though this is a chapter before we get to the t...
New
Creating the instance of Monad Outlaw described in the text results in error:
• No instance for (Applicative Outlaw)
arising from the s...
New
In ch3, section on Reading Type Errors, the error message presented for "one " :: Int with IsString seems non-standard, ie not from a min...
New
There’s a small typo in ch2 (B9.0), half way through the section Destructuring Values With Pattern Matching in the sentence:
As an exam...
New
The summary section in chapter 1 (B9.0) ends with:
“In the next chapter you’ll learn about Haskell’s type system and what a function doe...
New
On p66 of B9.0 chapter 2:
combineLists as bs =
let a = head as
b = head bs
as' = tail as
bs' = tail bs
in if null...
New
Just noticed a typo in chapter 2, on the bottom of p55 of B9.0 it says:
pseduo-Haskell
I missed this on my first reading of the chapter...
New
@RebeccaSkinner
In beta 9.0
A small typo near the bottom of p83:
“but it there are some extra moving parts”
Probably"it" should be dr...
New
I noticed a couple of typos:
Bottom of p74: “Haskell uses is a”
“is” should be dropped
p75 “let’s take another look at Haskell list”...
New
@RebeccaSkinner
On page 57 (B9.0)
The if conditions in foldr expansion are not reducing:
eg the second one should be if null [2,3] etc
New
Most Active This Week
Most Active This Month
Most Active This Year
‘PolyKinds GHC2021’ (page xx, line 12) is a duplicate entry. See last line on page xix.
(Book version P1.0)
New
Most Active Last Three Years
@RebeccaSkinner
Thanks you for this beautiful book.
Chapter 8 - p.317 3rd paragraph from the bottom
If you build your application and ...
New
@RebeccaSkinner,
page 141. calculator.
I suggest you explain a little more about why you introduced the Left and Right types in the Cal...
New
@RebeccaSkinner
In Effective Haskell Chapter 11 (~ p 410 in ePub), when creating the Encode and Decode instances for String, pack and un...
New
@RebeccaSkinner
In beta 9.0
A small typo near the bottom of p83:
“but it there are some extra moving parts”
Probably"it" should be dr...
New
Hi @RebeccaSkinner,
In for example the Calculator segment of chapter 4, if I run the examples in GHCI this error is returned:
λ: Ad...
New
@RebeccaSkinner,
Allright, so I have put all of the example code for Calculator in chapter 4 on page ~140 in a file and when loading it ...
New
@RebeccaSkinner
In the “Creating New Variables” section of Chapter 1, it says that you can’t reassign variables once defined. But new Ha...
New
The function I am testing is handleNums on page 68.
It returns this error message:
λ: :reload
[1 of 1] Compiling Main ...
New
Effective Haskell:Chapter 13 (B9 - PDF version) - infinite loop when running the ClassyArchiver code
Refer to pages 508-511
I get an infinite loop when running the original parseArchive function, after adding a variable called "archiveD...
New
Just noticed a typo in chapter 2, on the bottom of p55 of B9.0 it says:
pseduo-Haskell
I missed this on my first reading of the chapter...
New
There’s a small typo in ch2 (B9.0), half way through the section Destructuring Values With Pattern Matching in the sentence:
As an exam...
New
Title: Effective Haskell - Kindle Edition
Chapter: 1 Section: Precedence, Operators, and Fixity
In the first expression, ((((((add add)...
New
I’m hopeful for someone that could explain what GHCI does to differentiate an IO action returning a value that has a Show instance versus...
New
On p66 of B9.0 chapter 2:
combineLists as bs =
let a = head as
b = head bs
as' = tail as
bs' = tail bs
in if null...
New
In ch3, section on Reading Type Errors, the error message presented for "one " :: Int with IsString seems non-standard, ie not from a min...
New
Most Active Over Three Years
Author Spotlight
Rebecca Skinner
@RebeccaSkinner
Welcome to our latest author spotlight, where we sit down with Rebecca Skinner, auth...
New
Build efficient applications that exploit the unique benefits of a pure functional language, learning from an engineer who uses Haskell t...
New
Title: Effective Haskell - Example doesn’t work (page 8)
Middle of page 8 says: "Create a new Main.hs and copy the example below to get ...
New
“Much of this {difficult~>difficulty} is due to the complexity inherent in modern systems. ”
“Today, software needs to do more things...
New
In toCsv (ePub p 157, dropLeadingComma will leave a leading space. In the case statement, the first case is ‘,’:s’ → s’ and it should be ...
New
At the beginning of the Composing Functions subsection in Chapter 1 it says: “You’ve already done this kind of implicit function composit...
New
Functions that accept arguments in any order are called “commutative”, not “associative”. Note that this is mentioned twice in the same p...
New
At the end of “Depending on Other Files” (ePub p 153), it says “In the next section you’ll learn the basics of Haskell’s syntax and gramm...
New
The addPeano function switches the arguments in the recursive call. The implementation should be:
addPeano Z b = b
addPeano (S a) b = a...
New
In Chapter 8, (Viewing Text One Page at a Time), when defining groupsOf, it says we should use a polymorphic type in the type signature, ...
New
To be more concise and minimize the number of threads, I grouped the suggested corrections into one post.
A few notes on how I structure...
New
To be more concise and minimize the number of threads, I grouped the suggested corrections into one post.
A few notes on how I structure...
New
In the “Filtering List Elements” section, the party budget function is first called “foodBudget” and all subsequent reference are “partyB...
New
On page 19, the last line of the guard clause code snippet:
| otherwise = “that’s an unfathomalbly big number”
has “unfathomably” missp...
New
In the “Functions as Data Types” section of Chapter 4 (ePub p 113), the takeDigits parser is introduced as “we could take some digits fro...
New
Publisher:
Pragmatic Bookshelf
Latest in Effective Haskell
Get money off!
The Pragmatic Bookshelf
35% off any eBook
Use the coupon code "devtalk.com" to get 35% off any eBook published by PragProg!








